我是一名新程序员,并且我学习了一些C。
问题是,我得到一个文件,其单词由回车键分隔,例如:
Apple
Banana
Cinnamon
我想将所有这些数据存储在一个变量(一个字符串(字符数组))中,但是我认为fgets()函数在找到回车键时就会停止。
所以我想知道是否还有另一种方法
char* readFile(void){ //
FILE *text;
text = fopen("text1.txt", "r");
char *words;
words = malloc (sizeof(char)*10);
fgets(words, 2000, text);
fclose(text);
printf("%s\n", words); // Just to see the output
return words;
}
当我读取包含以下内容的文件时:
Apple
Banana
Cinnamon
输出为:
Apple
答案 0 :(得分:1)
fgets
用于读取文件中的行。根据手册页:
fgets()从流中读取最多小于大小的字符,并将其存储到s指向的缓冲区中。在EOF或换行符之后停止读取。如果读取换行符,则将其存储到缓冲区中。终止空字节('\ 0')存储在缓冲区中的最后一个字符之后。
如果要获取原始数据,请使用fread
。该函数的手册页将其描述为:
fread()函数从stream指向的流中读取nmemb数据项,每个数据项的长度为字节,将它们存储在ptr给定的位置。
另一种选择是每行只调用fgets
3次,那么输入将被拆分。
哪种方法取决于您要对数据进行什么处理。