fgets 在我不希望的时候拆分输入字符串
fgets splits input string when I dont want it to
我正在使用 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:永远不要使用记事本
尝试 fgetc() 或使用 fread() 一次读取一个字节
#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 Studios 内在的原因造成的。或者您的输入文件可能有问题。
我正在使用 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:永远不要使用记事本
尝试 fgetc() 或使用 fread() 一次读取一个字节
#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 Studios 内在的原因造成的。或者您的输入文件可能有问题。