【发布时间】:2016-05-13 20:40:40
【问题描述】:
int main()
{
FILE *infile;
FILE *infile2;
char input[255],input2[255];
int status1, status2;
infile = fopen("test.txt", "r");
infile2 = fopen("test2.txt", "r");
if(infile == NULL)
{
printf("Can not open file 1!\n");
}
else if(infile2 == NULL)
{
printf("Can not open file 2!\n");
}
else
{
do
{
status1 = fscanf(infile, "%s", &input);
status2 = fscanf(infile2, "%s", &input2);
printf("File 1: %s\n File 2: %s\n", input, input2);
}while(status1 != -1 || status2 != -1);
}
fclose(infile);
fclose(infile2);
return 0;
}
我的输出如下所示:
我想在一行中打印出文件 1,而不是逐字打印。文件 2 也是如此。我对C有点陌生,所以我被卡住了。
【问题讨论】:
-
使用
while (fgets(input, sizeof input, infile)) {...} -
你的代码很容易出错。如果第一个文件比第二个文件短/长,会发生什么?无论如何,您都使用
scanf,因为如果 eitherstatus1orstatus2不是-1,则进入while循环。