2015-03-25 51 views
1

我使用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:從來不使用記事本

+0

你在Windows上嗎?你是如何創建輸入文件的? – immibis 2015-03-25 03:32:24

+0

是的,用VS2013 dev cmd編譯/運行。我剛打開記事本並手動創建輸入文件 – cp101020304 2015-03-25 03:33:07

+0

,LMAX定義爲什麼? – JohnH 2015-03-25 03:40:04

回答

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內在的東西造成的。或者您的輸入文件可能存在問題。

0

嘗試龜etc()或使用FREAD()在我的系統上的時間