課題を教えて下さい。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ten

課題を教えて下さい。

#1

投稿記事 by ten » 18年前

行継続の処理をするプログラムを作れ。一行を文字列として読み込み、その一行を画面に表示するプログラムを作る。ただし、改行の直前の文字が '\' であったときには、次の行も読み込んで先の一行に続けるようにすること。という課題をやっています。printfで\nの有無利用すれば上手くいくと思いました。でも上手くいきません。ループ抜ける条件も上手く作れません。ソースです。

#include <stdio.h>
#include <string.h>
#define MAX 51

void main ()
{
char x[MAX];
int n;

start:

gets(x);

n = strlen(x)-1;

if (x[n] = \){

printf("%s", x );

}else{

printf("%s\n", x );

}

goto start;


}

フリオ(元通りすがり)

Re:課題を教えて下さい。

#2

投稿記事 by フリオ(元通りすがり) » 18年前

 
 これで、どうでしょう。
#include <stdio.h>
#include <string.h>

int main(void)
{
    FILE *fp;
    char data[51];
    int len;
    
    if((fp = fopen("test001.txt", "r")) == NULL){
        puts("File Open Error");
        return 1;
    }
    while(fgets(data, 51, fp) != NULL){
        len = strlen(data);
        if(data[len - 1] == '\n' && data[len - 2] == '\\'){
            data[len - 2] = '\0';
        }
        printf("%s", data);
    }
    return 0;
}
 

閉鎖

“C言語何でも質問掲示板” へ戻る