【发布时间】:2014-01-31 19:51:45
【问题描述】:
我是 C 编程的初学者,并尝试使用 struct 来存储相关变量,然后在主程序中使用它们。但是,当我在不使用 struct 的情况下运行相同的程序时,它运行良好。
代码如下所示,除了分段错误外,没有显示任何编译错误,但没有输出。
#include<stdio.h>
struct test
{
char string1[10000];
char string2[10000];
char string3[10000];
char string4[10000];
}parts;
int main()
{
FILE *int_file;
struct test parts[100000];
int_file=fopen("intact_test.txt", "r");
if(int_file == NULL)
{
perror("Error while opening the file.\n");
}
else
{
while(fscanf(int_file,"%[^\t]\t%[^\t]\t%[^\t]\t%[^\n]",parts->string1,parts->string2,parts->string3,parts->string4) == 4)
{
printf ("%s\n",parts->string3);
}
}
fclose(int_file);
return 0;
}
输入文件“intact_test.txt”有以下行: AAAA\tBBBB\tCCCC\tDDDD\n
【问题讨论】:
-
附带问题:建议将
fscanf(int_file,"%[^\t]...更改为char buf[MAXLINESIZE]; while (fgets(buf, sizeof buf, int_file) != NULL) { ...并然后 将buf解析为parts。 -
抱歉无法理解您的建议。如果你能澄清一下,我会很高兴。我想使用 struct,因为可以有几乎 10 个或更多变量,并且它们的大小可能从 5 个字符到 1000 个字符或更多,具体取决于输入文本文件。
-
文件数据是每个结构1行吗?