34

私は現在、コンソールにテキスト ファイルを出力するこのプログラムを持っていますが、すべての行の下に余分な新しい行があります。テキストが

こんにちは世界

hello を出力します

世界

コードはこれです

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    FILE* fp;
    char input[80], ch = 'a';
    char key[] = "exit\n";
    int q;

    fp = fopen("c:\\users\\kostas\\desktop\\original.txt", "r+");

    while (!feof(fp)) {
        fgets(input, 80, fp);
        puts(input);
    }
    fclose(fp);

    return 0;
}
4

3 に答える 3

82

通常、puts() の代わりに fputs() を使用して、改行を省略します。あなたのコードでは、

puts(input);

次のようになります。

fputs(input, stdout);
于 2013-06-21T15:21:21.360 に答える
13

puts()ライブラリ仕様で改行文字を追加します。printf代わりに、フォーマット文字列で出力されるものを制御できる場所を使用できます。

printf("%s", input);
于 2013-06-21T15:20:31.543 に答える