2013-06-02 30 views
0

我有一個簡單的問題,我應該從文本文件中讀取(逐行)並將輸入組織爲數字/符號/大寫/小寫的單獨數組。我創建了兩個函數,一個獲取字符並將它們存儲到他們尊敬的數組中,另一個將它們排序(冒泡排序)。我的問題是,我無法弄清楚如何爲每一條新線調用這兩個函數。如何讀取下一行然後調用函數?

+0

只停留在'\ N'循環,並添加另一個循環,直到'EOF'使所有線路得到讀。 – Aneri

+0

因此,第一個while循環在\ n結束,另一個在第一個循環內直到EOF? – MordFustang

+0

不,將所有在另一個循環中的所有東西包裝到EOF中,並將當前循環條件更改爲''\ n''和'EOF'(因爲一行可能由'EOF'或'\ n'結束)。順便說一句,爲什麼要刪除代碼? – Aneri

回答

1
int main() 
{ 
    char line[256]= ""; 

    while (fgets(line, sizeof(line)-1, stdin)!=NULL) { 
     bubbleSort(line, strlen(line)); 
    } 

另請參閱此link以獲取示例如何逐行讀取文件。

或CHAR成炭:

int idx= 0; 
char line[256]; 

while((c=getchar()) != EOF){  
    if(c != '\n'){ 
     line[idx]= c; // store char by char in line at next pos 
     idx++; 
    } 
    else { // at \n pass the line and length to bubbleSort 
     bubbleSort(line, idx); 
     idx= 0; 
    } 

}

+0

你認爲一條線不能超過256個字符,這是不好的。原始程序中沒有這樣的限制。事實上,你正在解決另一個問題。 – Aneri

+0

@Aneri:只要老兄有輸入樣本,他的樣本代碼仍然顯示在問題中,它看起來幾乎就像是同樣的問題。 – Nicholaz

+0

他不得不區分數字,小寫和大寫字母,再加上他跳過重複。 – Aneri

相關問題