行継続の処理をするプログラムを作れ。一行を文字列として読み込み、その一行を画面に表示するプログラムを作る。ただし、改行の直前の文字が '\' であったときには、次の行も読み込んで先の一行に続けるようにすること。という課題をやっています。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:課題を教えて下さい。
これで、どうでしょう。
#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; }