【发布时间】:2016-04-29 21:53:24
【问题描述】:
好的,所以我的所有代码都可以正常工作。我主要是在寻找建议。
现在,我正在读取一个文件。文件的每一行都有 3 个不同的变量。这些变量被读入一个数组。 我正在尝试获取输入的问题是,当在 while 循环中读取文件时,数据会覆盖自身。我需要将所有数据存储在一个数组中,中间有空格。我不确定它目前没有在做什么。有没有更好的功能可以使用?
这是我所拥有的示例:
char filepath[1000], filepathBP1[1000];
char BP2_ext [] = "\\BP_2.txt";
char bp2_Val1[80], bp2_Val2[80], bp2_Val3[80], bp2_Line[100];
FILE* fp;
strcpy(filepathBP1, filepath);
strcat(filepathBP1, BP1_ext);
fp = fopen(filepathBP1, "r");
if (fp == NULL)
{
puts("ERROR OPENING FILES");
exit(EXIT_FAILURE);
}
while (!feof(fp))
{
printf("\n\nREADING BP_1.txt...");
fgets(bp1_Line, 100, fp);
sscanf(bp1_Line, "%s\t%s\t%s", bp1_Val1, bp1_Val2, bp1_Val3);
printf("%s\t%s\t%s\n", bp1_Val1, bp1_Val2, bp1_Val3);
}
fclose(fp);
【问题讨论】:
-
欢迎来到 Stack Overflow。请尽快阅读About 页面。更紧急的是,请阅读如何创建 MCVE (minimal reproducible example)。我们确实需要查看一些示例数据(3 行可能就足够了),以及您需要的输出和实际输出。
-
如果您有第 1 行 =
abc def ghi和第 2 行 =pqr stu vwx,并且您希望bp1_Val1以abc pqr和bp1_Val2以def stu结尾,并且bp1_Val3以ghi vwx结尾,那么您必须采取措施添加空格并在第一行添加的数据之后读取第二行。但该信息应该在问题中 - 您可以对其进行编辑。