英文を打って(例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という文字が出てきませんよろしくお願いします
最後のやつだけでない
Re:最後のやつだけでない
いえ、前回の(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 が検出されました。
の時にはそんなことしなくてもできたので・・・
できれば普通に入力したらでるようにしたいです。
ちなみにコンパイルしなおしなおしたらこんなエラーが出ます。
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 が検出されました。
Re:最後のやつだけでない
エラーは }の個数が対応してないからでしょう。
前回はしらないけど、EOFはCTRL-Zなんだからしょうがない。
Enterで終わらせたいなら、
if(c == '\n')
に変更したらどうですか。
前回はしらないけど、EOFはCTRL-Zなんだからしょうがない。
Enterで終わらせたいなら、
if(c == '\n')
に変更したらどうですか。
Re:最後のやつだけでない
それをやるとlettersが改行した後に出力してしまうので
もし¥nがあったらその前にretterを表示させた後に改行しなさいとプログラム組めればいいのですが・・
もし¥nがあったらその前にretterを表示させた後に改行しなさいとプログラム組めればいいのですが・・
Re:最後のやつだけでない
#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; }