当我不想要它时,fgets分割输入字符串
问题描述:
我使用fgets从文件中读取一行,但它将输入行分成多行,这不是我想要的功能。当我不想要它时,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:从来不使用记事本
答
#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内在的东西造成的。或者您的输入文件可能存在问题。
答
尝试龟etc()或使用FREAD()在我的系统上的时间
你在Windows上吗?你是如何创建输入文件的? – immibis 2015-03-25 03:32:24
是的,用VS2013 dev cmd编译/运行。我刚打开记事本并手动创建输入文件 – cp101020304 2015-03-25 03:33:07
,LMAX定义为什么? – JohnH 2015-03-25 03:40:04