Я изучаю файл ввода/вывода. Код в блоке связывает некоторые функции, такие как: fgetc(), fgets(), fputs(). я не знаю, почему это не работает точно так, как я хочу. Большое вам спасибо! Ниже мой код:Почему ввод «abc !!!» но выход не «abC+++»?
#include <stdio.h>
int main()
{
FILE *fp; //FILE type pointer
int c; //using to get each character from file
char buffer [256]; //array as buffer to archive string
fp = fopen("file.txt", "r"); /*open a file with only read mode*/
if(fp == NULL)
{
perror("Error in opening file");
return(-1);
}
while(!feof(fp)) /*check if has not yet reached to end of file*/
{
c = getc (fp); //get a character from fp
if(c == '!')
{
ungetc ('+', fp); //replace '!' by '+'
}
else
{
ungetc(c, fp); //no change
}
fgets(buffer,255,fp);//push string of fp to buffer
fputs(buffer, stdout); //outputting string from buffer to stdout
}
return(0);
}
Чтобы узнать, как сделать цикл чтения, см. Http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong –