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