我正在编写从.txt文档中提取文本的代码,而我在fgets()
调用时遇到问题。
FILE *textFile
// Opening file and checking for error in opening
textFile = fopen("textfile.txt", "r");
if (textFile != NULL) {
while((oneCharacter = fgetc(textFile)) != EOF) {
if (inputFromUser == 1) {
fgets(textLine, 80, textFile);
length = strlen(textLine);
printf("%s\n", textLine);
}
当我打印lineOfText时,它似乎省略了文本文件的第一个字母。例如,如果我要提取的文本是:
StackOverflow is great!
它将打印:
tackOverflow is great!
我是否遗漏了fgets()
语句的语法?
答案 0 :(得分:1)
使用
while(fgets(textLine, 80, textFile) != NULL)
{
// Code goes here
}
由于你正在进行fgetc()
,你已经在阅读文件中的第一个字符了,其余字符由fgets()
读取,因此您看到输出中没有第一个字符