タイトルは『表示が思い通りにできません』となっておりますが、実際はなんと文字におこせばよいのかわからなかったので適切な表現ではなかったかもしれませんが、本文でしっかり質問内容を説明したいと思いますのでよろしくおねがいします。
今回質問したいのは構造体に対する文字入力を、何度も繰り返し行うというプログラムです。
自分のつくったプログラムは以下のものです。
#include <stdio.h> typedef struct { char moji1[20]; char moji2[20]; } list; int main(void) { list std[10]; int i; int k = 0; for( i = 0; k == 0; i++) { printf( "文字列1:" ); gets(std.moji1); printf( "文字列2:" ); gets(std.moji2); printf( "続けて入力するなら0,しないならその他:" ); scanf( "%d", &k); putchar( '\n' ); } return(0); }
しかし上記のプログラムの表示結果は 文字列1:入力された文字列 文字列2:入力された文字列 続けて入力するなら0,しないならその他:0 文字列1:文字列2:入力された文字列 続けて入力するなら0,しないならその他:0 文字列1:文字列2:入力された文字列 続けて入力するなら0,しないならその他:1
というものになります。
そして私が皆様に質問したい部分は、表示結果の2度目以降の入力時で文字列1:文字列2:と並んで表示されてしまう箇所になります。
私が求めている表示結果は1度目の入力時の画面が何度も続く(文字列1:と文字列2:の間にしっかりと改行が入る)というものなのですが、どのようにプログラムを変更すればよいのでしょうか。
1度目の入力は問題がないところをみると、やはりfor文の判定部もしくはscanf()による入力が問題なのかと考えましたが自分では解決まで至ることができませんでした。
Cの知識は学校でまだ1年も勉強していないのでそんなに多くあるとはいえません。
今回の問題を理解し、解決できるようにお力添えお願いいたします。