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 内在的原因造成的。或者您的输入文件可能有问题。