我正在寫從文本文件從文件中讀取單詞,而忽略空格和」,(c)中
我怎麼能只掃描字與空間或數字,並開始掃描字的程序用空格
結束如果不採取',.()\t\n
到我的字符串
我知道我可以使用函數scanf函數,但並沒有完全得到如何使用它的方式
另一個小問題
我正在計算我的文字中有多少行 ,所以我想我應該尋找一個「\ n」號來增加我的計數嗎?
我正在寫從文本文件從文件中讀取單詞,而忽略空格和」,(c)中
我怎麼能只掃描字與空間或數字,並開始掃描字的程序用空格
結束如果不採取',.()\t\n
到我的字符串
我知道我可以使用函數scanf函數,但並沒有完全得到如何使用它的方式
另一個小問題
我正在計算我的文字中有多少行 ,所以我想我應該尋找一個「\ n」號來增加我的計數嗎?
首先,當你問一個問題,你需要遵循一些規則,這裏是一個像如何問堆棧溢出問題:
How to ask從堆棧溢出的幫助中心
如果我是做這個任務我會讀取它char使用'while循環'結束於EOF和它的內部'if'檢查是否應該將此字符添加到您的字符串並使用realloc添加它。
對於第二個問題,在第一個問題之前放置另一個'if',它檢查char ==是否爲'\ n',如果是這樣,則爲++計算行數。
在結束它應該是這樣的:
int *input = malloc(sizeof(int));
int linesLength = 0;
int now;
int lines = 0;
whlie ((now = getc(file)) != EOF){
if (now == '\n') {
lines += 1;
}
if (/* what chars you want out */){
/* add your char using realloc */
linesLength += 1;
}
}
順便說一句,這是完全一樣的任務,我需要做的,直到18本月和你的名字看起來很熟悉,關鍵是,這是不是作業網站,下次請注意。
'fgets()'並在字符的基礎上放棄了'realloc()'腦損壞的想法。 – 0andriy
爲什麼腦損傷@ 0andriy?!?!首先,這是粗魯的,如果你認爲他應該使用fgets(),那麼第二個答案是答案。 – Yonlif
我對你的代碼有點困惑。我沒有看到它用'input'做了什麼,但是這行肯定是錯誤的:'int * input = malloc(sizeof(int *));'。這應該是:'int * input = malloc(sizeof(int));',或者更好:'int * input = malloc(sizeof * input);'。如果你打算在這裏使用'char',第二個版本只需要改變左邊的類型。而且,對於添加到存儲緩衝區的每個字符,'realloc()'效率極低。最好定期根據需要重新分配到合理的大小,如果需要,可以在最後修剪到最終尺寸。 –
如果您使用'fgets'閱讀xing建議的內容,則可以輕鬆計數行數。 –
如果一個文件沒有以'\ n'結尾,例如它只有''abc「'。這是一個0行文件或1行文件爲您的應用程序? – chux
「我正在編寫一個掃描單詞的程序」 - >發佈那個關於代碼而不是帖子代碼的話題會吸引反對票。建議張貼您的代碼。 – chux