C语言里 init这个函数具体怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言里 init这个函数具体怎么用相关的知识,希望对你有一定的参考价值。

就是分配内存空间那个

……原题如下
分别编写头文件和多个C文件,组成一个工程文件。内容包括:分配一块内存x,读入10个双精度数据存入该内存块x中,并输出x的内容;计算这10个数的积并输出;将存储块x中的10个双精度的数读入数组a中,然后将a中的数据按由小到大的顺序排序,并输出a的内容;再分配一块内存y,将数组a的内容乘以10,并存到这块内存y中,按反序输出y的内容。

呃……这个作业的另一个版本

(1)编写分配一块内存的程序init。
(2)编写完成读进10个双精度值的函数readin,函数能将这些值存进由函数init申请的存储块中。
(3)编写计算这些值的积的函数product。
(4)编写一个sort函数,用来将存储块中的10个双精度的值读入数组a中,然后将a中的数据按从小到大的顺序排列。
(5)再用init分配一块内存,将数组a的内容乘以10,并存到这块内存中去。
(6)在主程序中调用他们,输出第一次申请的内存块中的内容和数组排序后的内容,按反序输出第2次申请的内存块中的内容。

init标示符在gcc编译器中指定将该函数置于内核的特定区域。在内核完成自身
初始化之后,就试图释放这个特定区域。实际上,内核中存在两个这样的区域,
.text.init和.data.init—第一个是代码初始化使用的,另外一个是数据初始化使用的(
可以在进程间共享的代码和字符串常量之类的“文本(Text)”是在可执行程序中的“纯
区域”中使用的一个术语)。另外你也可以看到__initfunc和__initdata标志,前者和
__init类似,标志初始化专用代码,后者则标志初始化专用数据。
参考技术A int吧,int是输入整数型,就是输入一个整数 参考技术B 确定是init这个函数么??一般含有init的函数都不会直接就只有init的字样啊,会不会说的是__init__呢? 参考技术C 没听说过。是那里用到的? 参考技术D 我也没见过,应该是int吧,是告诉计算机这是一个整型变量类型,我也是菜鸟,不是很清楚,大家一起努力学好C吧,加油!

请问一下 怎么用c语言实现读取一个txt文件里的数据 要按行读出来

请问一下 怎么用c语言实现读取一个txt文件里的数据 要按行读出来 比如我的txt的文档里的数据是
0.160
0.172
0.160
0.233
0.209
。。。。我需要每次取出一个数据来计算 这个怎么实现啊?

可以用C++的流来做,包含fstream头文件,定义一个ifstream输入流,用getline函数读一行数据,当然读了之后可以把
#include<fstream>
#include<iostream>
using namespace std;

void main()

ifstream in("####");//传入文件名
string str;//用于放一行数据
getline(in,str);//重点,很简单吧
cout<<str<<endl;
in.close();

如果只是读数字的话,甚至可以这样来做
double value;
in>>value;//这样程序会忽略空白符读入一个double型的数据
其实C和C++本就是一脉相承,所以就用C++回答了
参考技术A 简单的办法:
#include <stdio.h>
...//这里的你自己的程序,省去
FILE *fp = fopen("你的文件的文件名", "r");
int n;
while (!feof(fp))

fscanf(fp, "%d", &n);
..//读出的数在n里,一次一个数

fclose(fp); //读完就退出循环本回答被提问者采纳
参考技术B

    打开文件 fopen("需要打开的路径")

    然后使用fgets函数读取行

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX_LINE 1024
    int main()

     char buf[MAX_LINE];  /*缓冲区*/
     FILE *fp;            /*文件指针*/
     int len;             /*行字符个数*/
     if((fp = fopen("test.txt","r")) == NULL)
     
     perror("fail to read");
     exit (1) ;
     
     while(fgets(buf,MAX_LINE,fp) != NULL)
     
     len = strlen(buf);
     buf[len-1] = '\\0';  /*去掉换行符*/
     printf("%s %d \\n",buf,len - 1);
     
      return 0;

参考技术C /*假设你的数据文件是d:\ttt.txt
用循环把数字读到数组a里面顺便显示出来 */
#include <stdio.h>
int main()

double a[100];
int i=0;
FILE* fp;
if((fp=fopen("d:\\ttt.txt","r"))==0)

printf("无文件!!\n");
return -1;

while(!feof(fp))

fscanf(fp,"%lf",&a[i]);
printf("%lf\n",a[i]);
i++;

fclose(fp);
return 0;
参考技术D 利用输入输出流打开文件,然后按行读取放到string类型,然后再重定向到 double类型中,程序如下已经过调试:
#include <iostream>
#include<fstream>
#include<string>
#include<sstream>
using namespace std;
void main()

fstream in;
in.open("D:\\1.txt",ios::in);
string temp;double data;
while(getline(in,temp))

istringstream stream(temp);
stream>>data;
cout<<data<<endl;





还有更简单的方式,如果一行只有一个单词的话
while(in>>data)
cout<<data<<endl;

以上是关于C语言里 init这个函数具体怎么用的主要内容,如果未能解决你的问题,请参考以下文章

C语言里的system函数都有啥用

C语言中如何将自己常用的函数封装到编译器的库函数中具体应该怎么做呢?

c语言怎么包含自己写的头文件?

sleep()函数怎么具体在c语言中怎么用?

c语言画图怎么画直方图?

怎样用c语言编程清屏