2014-10-08 21 views
0
while (fgets(line, LINELEN, inputFile)){ 
     printf("%s$", line) 
} 

我正在嘗試讀取文件並將其作爲CAT命令打印到控制檯。在這種情況下,我想在每一行的末尾加上一個美元符號,但是美元的嘆息只是在每一行的開頭纔打印出來。你們能告訴我如何解決這個問題嗎?非常感謝!如何在每個輸入結束時打印美元符號C

回答

2

fgets包括'\n'在該行的末尾。

使用類似:

char line[hopefullybigenough]; 
while (fgets(line, sizeof(line), inputFile)) { 
    size_t len = strlen(line); 
    if (line[len - 1] == '\n') line[len - 1] = '\0'; 
    printf("%s$\n", line); 
} 
+0

它的工作。非常感謝! – stanlopfer 2014-10-08 04:20:18

1

fgets命令存儲它讀取的換行符。通常的解決方案是刪除換行符(there are several ways to do this of course)。下面是一個方法:

while (fgets(line, LINELEN, inputFile)) 
{ 
    strtok(line, "\n"); 
    printf("%s$\n", line); 
} 
+1

注意'strtok'不重入或線程。 – o11c 2014-10-08 04:03:27

+0

'strtok'甚至在這裏工作。 http://ideone.com/yLHmuC – indiv 2014-10-08 04:17:48

+0

我的情況下,它的工作:( – stanlopfer 2014-10-08 04:21:59