• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つのプログラムの違い)

2つのプログラムの違い

このQ&Aのポイント
  • 2つのプログラムの違いについて説明します。
  • 1つ目のプログラムでは、入力した文字をそのまま表示します。
  • 2つ目のプログラムでは、入力した文字を表示し、その後に入力された回数を表示します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#96023
noname#96023
回答No.2

改行文字も含めて書いてみると 入力が「abc\n」なので 出力が、「a1\nb2\nc3\n\n4\n」 なのでしょうね

c-gongo
質問者

お礼

エンターって\nの事とは知りませんでした。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#76085
noname#76085
回答No.3

手元に、ASCIIコード表はありますか? 0x0Aには「LF」とあるはずです。これが改行(Line Feed)です。 改行も文字なので、getchar()で取ってきて、putchar()で出力されます。

c-gongo
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

"abc"の後のenterも「改行文字」としてgetchar()に取られているからです。

c-gongo
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • うまくいかないorz

    出てきたアルファベットをカウントするプログラムを作成したのですが、 うまくいきません。 #include<stdio.h> int main(void) { int kaisu[25]={0}; char c; int i; do{ i=(c=getchar())-'a'; //printf("%d\n",i); kaisu[i]++; }while(c=(getchar())!=EOF); for(i=0;i>=25;i++){ printf("%d\n",kaisu[i]); } return(0); } 一応、EOFで読み込みを終了させたいのですが。 ご伝授ください。

  • getchar関数について

     非常に初心者な質問なのですが、このようなCプログラムをみたことがあります。 #include <stdio.h> int main(void) { int c; while((c = getchar()) != EOF){ putchar(c); putchar(c); } return 0; } なのですが、このプログラムは、実行した状態で、「Hello」と入力して改行すると、「HHeelllloo」と表示されるのです。  そこで疑問なのですが、最初に宣言した変数は c だけなのに、どうして一気に「HHeelllloo」と表示できるのでしょうか?  個人的な予想をすると、最後に入力した「o」だけが表示されるような気がしてたまらないのですが・・・。    なぜなのか教えてください。

  • 直角三角形を表示するプログラム

    下記のプログラムを実行するとコマンドプロントになにも表示されず、強制終了しなければならなくなってしまいます。 whileのところがおかしいのはわかったのですが、この書き方の何がいけないのかが分かりません。 初歩的な質問で申し訳ありませんが、回答していただけると有難いです。 #include <stdio.h> int main(void){ int count, i; printf("何段ですか?"); scanf("%d", &count); for(i = 1; i <= count; i++){ while(i-- > 0){ putchar('*'); } putchar('\n'); } return 0; }

  • toupperに関して

    C言語初心者です。 勉強のために本に書いてあるものを写しながら勉強しているのですが、 #include <stdio.h> #include <ctype.h> int main() { int c; while ((c=getchar())!=EOF){ c=toupper(c); putchar(c); } } 以上のものを写したのですが、入力した文字が小文字であろうと大文字であろうと関係なくそのまま表示されます。 どこを間違えているのでしょうか? どうぞよろしくお願いいたします。

  • 置き換えのプログラム

    c言語初心者です。 入力されたタブを\tに置き換えて、入力全体を出力するプログラムを、 #include <stdio.h> main() { int c; while((c=getchar())!=EOF){ if(c=='\t') printf("\\t");   putchar(c); } } と書いて実行できたのですが、入力した文字(タブ、空白、改行などは除く)を¥(バックスシュラッシュ)に置き換えて出力するプログラムにするためには、どのように書き換えればよいのでしょうか? どなたかご教授お願いします。

  • MinGWのC言語でCTRL+Zで処理が終了しない

    C言語をMinGWで学習していますが、以下のコードでCTRL+Zで処理が終了しません。お教え下さい。 #include <stdio.h> int main(void) { int ch; while ((ch = getchar()) != EOF) putchar(ch); return 0; } 端末エミュレータはminttyで、OSはWindws xp sp3です。ちなみにMinGW shellで実行するとCTRL+ZとEnterで処理が終了します。

  • このプログラムの復元処理教えでください。助けてくだ

    #include <stdio.h> int main(void) { char a[51]; char b[101]; char c[51]; int i,k; int cnt; printf("文字例-->"); scanf("%s",a); i = 0; k = 0; while(a[i] !='\0') { cnt = 0; b[k] = a[i]; while(b[k] = a[i]) { cnt++; i++; } k++; b[k] = cnt + 48; k++; } b[k]='\0'; printf("b=%s\n",b); printf("c=%s\n",c); //-------------------------------------------------- getchar(); return 0; }

  • C言語 プログラミング 文字列

    C言語のプログラミングについての質問です。 文字列を入力して、それを逆順に表示するというプログラムを作っているのですが、 どうしても上手くいきません。 どこか間違えているのかわかりません。 わかる方いらっしゃいましたらご回答お願いします。 #include <stdio.h> int main(void) { char data[100]; int i, leng; char c; leng = 0; c =getchar(); while((c != '\n') && (c != EOF)) { data[leng] = c; leng = leng + 1; c = getchar(); } printf("%c", data[c]); return 0; }

  • Cプログラムの質問

    スペースを9個あけ、その次に*を表示させ、改行するというプログラムを作ろうとしています。一応プログラムを作ってみたんですが、いきませんでした。 #include <stdio.h> int main(){ int y, n; y = 10; while(n < y){ putchar(' '); } putchar('*'); putchar('\n'); return 0; } 初心者なので、どこが間違っているのかわかりません。教えてください。

  • 文字列を関数に渡すぷろぐらむなのですがおかしいです。

    <ソース> #include<stdio.h> #include<stdlib.h> void str(char a[]); int main() { char st[10]="abcde"; str(st); str("ABCabc123"); return 0; } void str(char a[]) { int i; printf("%s\n",a); i=0; while(a[i]){ a[i]=toupper(a[i]); putchar(a[i]); i++; } putchar('\n'); } 分からないところがあるので質問します。 toupperは、大文字にするんですよね。 putcharは、基本的にchar型でしたっけ? putsとgetsは、int型でしたっけ? 後、プログラムが暴走してます。 どこがおかしいんでしょう?

変化に気付く人
このQ&Aのポイント
  • 普段一緒の部屋で仕事をしない男性が時折顔を出すことがあるが、プライベートな話はほとんどしない。
  • 目が霞んできたので眼鏡をかけたら、後ろから男性が話しかけてきた。遠くにいても気づいていたのかと思うとドキドキしてしまう。
  • 話さない限りあまり顔を見ないが、男性に対する好意が芽生えている自分に気づいて、少しドキドキしている。
回答を見る

専門家に質問してみよう