最後のやつだけでない

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

最後のやつだけでない

#1

投稿記事 by 天和 » 15年前

英文を打って(例This is a pen)単語単位で切り出しそのごその単語の文字数を出力させないさいという問題で
#include<stdio.h>
int main(void)
{
int c;
int e;
e = 0;
while(1){
c = getchar();
putchar(c);
e++;
if(c == ' ')
{printf(": %d letters.\n", (e - 1));
e = 0;}
if(c == EOF)
{printf(": %d letters.\n", (e - 1));
e = 0;
break;

}
return 0;
}
とプログラムを組んだのですがさいごのもじだlettersという文字が出てきませんよろしくお願いします

non

Re:最後のやつだけでない

#2

投稿記事 by non » 15年前

EOFの入力はCTRL-Zです。
そのように入力しましたか?

天和

Re:最後のやつだけでない

#3

投稿記事 by 天和 » 15年前

いえ、前回の(http://www.play21.jp/board/formz.cgi?ac ... &rln=41131
の時にはそんなことしなくてもできたので・・・
できれば普通に入力したらでるようにしたいです。
ちなみにコンパイルしなおしなおしたらこんなエラーが出ます。
c:\users\k09036kk\desktop\c++\vc\project\宿題3\宿題3\宿題3.cpp(22) : fatal error C1075: 左側 中かっこ '{' に対応するものが 'c:\users\k09036kk\desktop\c++\vc\project\宿題3\宿題3\宿題3.cpp(3)' で見つかる前に EOF が検出されました。

non

Re:最後のやつだけでない

#4

投稿記事 by non » 15年前

エラーは }の個数が対応してないからでしょう。

前回はしらないけど、EOFはCTRL-Zなんだからしょうがない。
Enterで終わらせたいなら、
if(c == '\n')
に変更したらどうですか。

天和

Re:最後のやつだけでない

#5

投稿記事 by 天和 » 15年前

それをやるとlettersが改行した後に出力してしまうので
もし¥nがあったらその前にretterを表示させた後に改行しなさいとプログラム組めればいいのですが・・

non

Re:最後のやつだけでない

#6

投稿記事 by non » 15年前

#include<stdio.h> 
int main(void) 
{ 
	int c; 
	int e; 
	e = 0; 
	while(1){ 
		c = getchar();
		if(c != '\n')
			putchar(c); 
		e++; 
		if(c == ' ') 
		{
			printf(": %d letters.\n", (e - 1)); 
			e = 0;
		} 
		if(c == '\n') 
		{
			printf(": %d letters.\n", (e - 1)); 
			break; 
	
		}
	}
		return 0; 
}

天和

Re:最後のやつだけでない

#7

投稿記事 by 天和 » 15年前

なるほど改行の時だけ出力させないでその代わりの文章を用意してやればいいんですねありがとうございましたー

天和

Re:最後のやつだけでない

#8

投稿記事 by 天和 » 15年前

解決しました

閉鎖

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