我使用fgets从文件中读取一行,但它将输入行分成多行,这不是我想要它做的。
这是我正在使用的代码:
char string[LMAX];
FILE *fp;
fp = fopen("input.txt","r");
while(fgets (string, LMAX, fp) != NULL) { //Reading the file, line by line
printf("%s", string);
}
例如,如果我的输入文件有1,2;0,5;7,8;0,6;;
,则控制台中的输出会将其分解为0。
即
1,2;
0,5;7,8;
0,6;;
我希望它能用一行打印
编辑:确实这是我输入文件的问题。tldr:永远不要使用记事本
答案 0 :(得分:0)
尝试fgetc()或使用fread()一次读取一个字节
答案 1 :(得分:0)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
int LMAX = 1024;
char foo[LMAX];
FILE *fp;
fp = fopen("input.txt","r");
while(fgets (foo, LMAX, fp) != NULL) {
//Reading the file, line by line
printf("%s", foo);
}
}
我的系统上的一切正常(虽然我正在运行osx)。
1,2;0,5;7,8;0,6;;
明智地编码,你的逻辑和修饰符是合理的。我预计输出中的错误是由于Visual Studio中固有的东西。或者输入文件可能存在问题。