ループ抜けの処理について

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

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ループ抜けの処理について

Re: ループ抜けの処理について

#4

by das » 11ヶ月前

>h1j1k1 様
丁寧なご回答有難うございます。
>まず、Defineを使って1度しか使わないバッファーを指定しているのはなぜですか?
>次に、20行目でiCnt++としていないのはなぜですか?
>そして、16,17行目でprintf("Count %d\nBuffer Over\n", iCnt);
特に気にしておりませんでした。
ご指摘有難うございます。

>みけCAT

有難うございました。

Re: ループ抜けの処理について

#3

by h1j1k1 » 11ヶ月前

非表示エリア
この非表示エリアを表示するには、登録し、ログインする必要があります。

Re: ループ抜けの処理について

#2

by みけCAT » 11ヶ月前

dasw さんが書きました:下記のコードで実行しましたところ、6文字目でループを抜けて
しまいます。
こちらでためしたところ、6文字目ではなく11文字目でループを抜けました。
0から10まで数えているので、11文字になります。
改行文字を数え忘れているために6文字目だと誤解しているのではないでしょうか?

ループ抜けの処理について

#1

by dasw » 11ヶ月前

文字を1文字づつ入力し、文字数が10個目でループを抜ける
プログラムを作りたいのですが、
下記のコードで実行しましたところ、6文字目でループを抜けて
しまいます。
理由がわかりませんので、教えて下さい

コード:

#include "stdio.h"

#define BUF 20

int main(void){

	char cBuf[BUF];
	int iCnt=0;

	while(1){
		
		scanf("%c",&cBuf[iCnt]);
		printf("%c\n",cBuf[iCnt]);

		if(iCnt==10) {
			printf("Count %d\n",iCnt);
			printf("Buffer Over\n");	
			break;
		}		
		iCnt=iCnt+1;
	}

	return 0;

}

ページトップ