C Programming - Input / Output - Discussion
Discussion Forum : Input / Output - General Questions (Q.No. 7)
7.
On executing the below program what will be the contents of 'target.txt' file if the source file contains a line "To err is human"?
#include<stdio.h>
int main()
{
int i, fss;
char ch, source[20] = "source.txt", target[20]="target.txt", t;
FILE *fs, *ft;
fs = fopen(source, "r");
ft = fopen(target, "w");
while(1)
{
ch=getc(fs);
if(ch==EOF)
break;
else
{
fseek(fs, 4L, SEEK_CUR);
fputc(ch, ft);
}
}
return 0;
}
Answer: Option
Explanation:
The file source.txt is opened in read mode and target.txt is opened in write mode. The file source.txt contains "To err is human".
Inside the while loop,
ch=getc(fs); The first character('T') of the source.txt is stored in variable ch and it's checked for EOF.
if(ch==EOF) If EOF(End of file) is true, the loop breaks and program execution stops.
If not EOF encountered, fseek(fs, 4L, SEEK_CUR); the file pointer advances 4 character from the current position. Hence the file pointer is in 5th character of file source.txt.
fputc(ch, ft); It writes the character 'T' stored in variable ch to target.txt.
The while loop runs three times and it write the character 1st and 5th and 11th characters ("Trh") in the target.txt file.
Discussion:
21 comments Page 2 of 3.
Ravindra said:
1 decade ago
Answer is completely wrong. I tried in turbo C and it prints some different Answer.
Nnnnn said:
1 decade ago
Can anyone explain about it please, how 1st, 5th and 11th character will print.
Aditi said:
1 decade ago
No, the answer is correct and the explanation by Ritesh is perfect.
Amitava said:
1 decade ago
I also doubtful about the problem.Please clarify anyone.
Nikhil said:
10 years ago
Will there be any change if we write 4 instead of 4L?
Radhika said:
1 decade ago
Can anyone explain why while loop runs three times?
Radhika said:
1 decade ago
Can anyone explain why while loop runs three times?
Divya said:
8 years ago
while(1) means rotating loop till stack overflow.
Utkarsh said:
6 years ago
You are absolutely correct Thanks @Ritesh_Iiita.
Ankita said:
7 years ago
Why is the loop executed only for 3 times?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers