我正在使用C,我的知识非常基础.我想扫描一个文件并在第一行或第二行之后获取内容...
我试过了 :
fscanf(pointer,"\n",&(*struct).test[i][j]);
但是这个语法只是从第一行开始=
这怎么可能 ?
谢谢.
Zac*_*Zac 36
我能够使用以下指令跳过带有scanf的行:
fscanf(config_file, "%*[^\n]\n");
格式字符串表示包含任何字符(包括空格)的行.格式字符串中的*和NULL指针意味着我们不想保存行,而只是增加文件位置.
格式字符串说明:
*是每个scanf格式字符串开头的字符; 
%表示不将找到的模式放在任何地方(通常将格式字符串后的模式保存到参数中,在这种情况下参数为NULL); 
*指除换行符之外的任何字符; 
[^\n]意味着换行;
所以这\n意味着以换行符结尾的全文行.
参考这里.
Whi*_*ind 14
fgets将获得一行,并从下一行开始设置文件指针.然后,您可以在第一行之后开始阅读您想要的内容.
char buffer[100];
fgets(buffer, 100, pointer);
只要您的第一行长度少于100个字符,它就可以正常工作.否则,您必须检查并循环.
Jac*_*ack 13
目前尚不清楚你要将数据存储到什么地方,所以要猜出答案并不容易,你可以跳过字节,直到你过去\n:
FILE *in = fopen("file.txt", "r");
然后你可以跳过整行,fgets但它不安全(因为你需要先验估线的长度),否则使用fgetc:
char c;
do {
  c = fgetc(in);
} while (c != '\n');
最后你应该在你的内部使用格式说明符fscanf来实际解析数据,比如
fscanf(in, "%f", floatVariable);
你可以在这里参考说明者.
| 归档时间: | 
 | 
| 查看次数: | 51341 次 | 
| 最近记录: |