使用 fgets 和 puts 读取和打印无法正常工作的文件
Using fgets and puts to read and print a file not working
我写了这篇文章,如果下面的代码读取一个文本文件,上面写着:
那是最好的时代,
那是最糟糕的时代,
那是智慧的时代。
当我 运行 我的代码似乎什么也没有发生。您可以在我的代码中发现任何可能导致此问题的内容吗? (解决方案构建也没有错误或警告)。
谢谢:)
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE * fPointer;
fPointer = fopen("exercise1.txt","r");
char singleline[150];
while (!feof(fPointer))
{
fgets(singleline, 150, fPointer);
puts(singleline);
}
fclose(fPointer);
return 0;
}
如果我修改你的程序以考虑 Weather Vane 的评论,并且我将你的 puts 替换为 fputs 以不加倍 \n(fgets 不要删除 \n 和 puts 添加 \n):
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE * fPointer = fopen("exercise1.txt","r");
if (fPointer == NULL)
puts("cannot open exercise1.txt");
else {
char singleline[150];
while (fgets(singleline, sizeof(singleline), fPointer))
fputs(singleline, stdout);
fclose(fPointer);
}
return 0;
}
编译与执行:
/tmp % gcc -pedantic -Wextra c.c
/tmp % cp c.c exercise1.txt
/tmp % ./a.out
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE * fPointer = fopen("exercise1.txt","r");
if (fPointer == NULL)
puts("cannot open exercise1.txt");
else {
char singleline[150];
while (fgets(singleline, sizeof(singleline), fPointer))
fputs(singleline, stdout);
fclose(fPointer);
}
return 0;
}
/tmp % \rm exercise1.txt
/tmp % ./a.out
cannot open exercise1.txt
int i=0;
FILE *file;
file = fopen("code.txt","r"); //lecture d 'un fichier
char codesource[500] = {0};
if (file == NULL) {
printf("Erreur d'ouverture");
return 0;
}
else {
while((codesource [i] = getc(file))!= EOF) {
//printf("%c", codesource [i]);
i++;
}
}
我写了这篇文章,如果下面的代码读取一个文本文件,上面写着: 那是最好的时代, 那是最糟糕的时代, 那是智慧的时代。
当我 运行 我的代码似乎什么也没有发生。您可以在我的代码中发现任何可能导致此问题的内容吗? (解决方案构建也没有错误或警告)。 谢谢:)
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE * fPointer;
fPointer = fopen("exercise1.txt","r");
char singleline[150];
while (!feof(fPointer))
{
fgets(singleline, 150, fPointer);
puts(singleline);
}
fclose(fPointer);
return 0;
}
如果我修改你的程序以考虑 Weather Vane 的评论,并且我将你的 puts 替换为 fputs 以不加倍 \n(fgets 不要删除 \n 和 puts 添加 \n):
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE * fPointer = fopen("exercise1.txt","r");
if (fPointer == NULL)
puts("cannot open exercise1.txt");
else {
char singleline[150];
while (fgets(singleline, sizeof(singleline), fPointer))
fputs(singleline, stdout);
fclose(fPointer);
}
return 0;
}
编译与执行:
/tmp % gcc -pedantic -Wextra c.c
/tmp % cp c.c exercise1.txt
/tmp % ./a.out
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE * fPointer = fopen("exercise1.txt","r");
if (fPointer == NULL)
puts("cannot open exercise1.txt");
else {
char singleline[150];
while (fgets(singleline, sizeof(singleline), fPointer))
fputs(singleline, stdout);
fclose(fPointer);
}
return 0;
}
/tmp % \rm exercise1.txt
/tmp % ./a.out
cannot open exercise1.txt
int i=0;
FILE *file;
file = fopen("code.txt","r"); //lecture d 'un fichier
char codesource[500] = {0};
if (file == NULL) {
printf("Erreur d'ouverture");
return 0;
}
else {
while((codesource [i] = getc(file))!= EOF) {
//printf("%c", codesource [i]);
i++;
}
}