1
A
回答
3
從而H2CO3已經提到的,你可以使用線路長度此:
while (getline (&line, &line_size, f) != -1) {
if (strlen(line) == 1) {
printf("H2CO3 spotted a blank line\n");
}
/* or alternatively */
if ('\n' == line[0]) {
printf("Ed Heal also spotted the blank line\n");
}
..
}
0
您需要定義空白行。
此外,因爲「getline函數從流中讀取整行,直到幷包括下一個換行符。」
我不認爲
strlen(line) == 1
是便攜式的,因爲贏/ DOS和Unix使用EOL不同的約定。另外,在EOL字符完成之前EOF可能發生。所以真的,你需要定義一個功能,可能像
int is_blank_line(char *line, int line_size)
{
return line_size == 0 || is_eol(line)
}
其中is_eol是爲你所在的平臺定義的。在這裏,您可以在空格放可在一個空行,等等
所以,你會得到這樣的:
int is_eol(char *line)
{
...
return result;
}
...
int is_blank_line(char *line, int line_size)
{
return line_size == 0 || is_eol(line)
}
...
while (getline (&line, &line_size, f) != -1) {
if (is_blank_line(line, line_size)) {
printf("blank line spotted\n");
}
...
}
+2
'if(line [strspn(line ,「\ t \ v \ r \ n」)] =='\ 0')// line is blank' works fine。 (\ v爲舊時代的緣故,雖然我幾十年沒見過。) –
相關問題
- 1. For-Loop跳過getline C++
- 2. getline(cin.name)被跳過
- 3. C++函數getline()在空字符串跳下
- 4. 計劃被跳過函數getline()/ C++
- 5. 的std ::函數getline不會跳過空行
- 6. std :: getline如何決定跳過最後一個空行?
- 7. 爲什麼getline跳過第一行?
- 8. Getline在我的while循環中跳過第一行? (C++)
- 9. 程序跳過函數getline
- 10. 程序跳過std :: getline
- 11. getline()函數跳過輸入
- 12. getline C++的奇怪行爲
- 13. C++:getline()讀完整行嗎?
- 14. 忽略空格在C++中使用getline
- 15. C++:Getline首先停止讀取空格
- 16. Awk跳空行
- 17. fgets跳過空行
- 18. Getline跳到下一個cin並跳過前一個cin
- 19. getline行結束?
- 20. getline檢查行是否爲空格
- 21. C++ help - getline
- 22. getline問題C++
- 23. C++ getline()函數
- 24. C++ std :: getline error
- 25. C++ Getline&seekg
- 26. C++ getline在第一次調用後被跳過
- 27. getline跳過第一個輸入字符C++
- 28. C++問題 - getline跳過第一個輸入
- 29. 跳過刪除/空行sqlite
- 30. 跳過Parsec的空白行
根據函數getline)是否'('或不返回尾部換行符,你可以檢查這行是0或1個字符長。 – 2012-11-10 21:59:06
定義「空白」?它是指任何只包含空白或完全空白的東西嗎? – Rookie