1.fscanf(fd_file,"%d",&num);//读取int 类型数据
fscanf(fd_file,"%s",str);//读取char * 型str
fscanf()遇到空格或者换行符时,停止读取。
#include <stdio.h> #include <stdlib.h> int main() { char str1[10]; FILE * fp; fp = fopen ("file.txt", "w+"); fputs("We are in 2023", fp); rewind(fp); fscanf(fp, "%s", str1); printf("Read String %s\n", str1 ); fclose(fp); return(0); }
输出打印为
Read String1 We
可以看出无法输出打印 “We are in 2023”
2.如何输出打印整个字符串呢?可以调用fgets(),用来读取一行字符串,遇到换行符时,停止读取;但是使用fgets()读取字符串时,会在字符串末尾自动加'\n',影响数据的真实性。
我们可以将str末尾加的换行符替换为结束符,可以解决上述为题。
fgets(str1,10,fd);
p_fstrs[strlen(str1)-1] = '\0';