質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

3回答

2691閲覧

【C言語】標準入力への行番号とその行の文字数の付与

imoimoimo

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/05/05 04:14

前提・実現したいこと

C言語の超初心者で初投稿となります。
標準入力に英文(英数字の文字列)を入力すると,入力した英文の各行に,1から始まる行番号とその行の文字数を付加して表示するプログラムを作成したいです。

発生している問題・エラーメッセージ

行番号の表示ができません。

該当のソースコード

#include <stdio.h> #include <string.h> #define SIZE 100 int main(void) { char line[SIZE]; int len; for (len =1; fgets(line, SIZE, stdin)!=NULL;len++) { len = strlen(line); printf("[%3d]%s", len-1, line); } return 0; }

試したこと

文字数にカウントはできましたが、そこに行番号の追加ができません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

lenという変数を作ったのに、それを何のために使うかを、プログラムを書いている途中で忘れてしまい、別の目的に使ってしまっています。

行番号をカウントする変数を作りましょう。

投稿2020/05/05 04:19

otn

総合スコア85949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imoimoimo

2020/05/06 00:47

ご教授ありがとうございました。 参考にどうにか解決することができました!
guest

0

変数lenはlineの文字数をセットするつもりなのでしょう。
では行番号をセットするつもりの変数はどれですか?

投稿2020/05/05 04:18

episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imoimoimo

2020/05/06 00:48

ご教授ありがとうございました。 参考にどうにか解決することができました!
guest

0

ベストアンサー

x.c

c

1#include <stdio.h> 2#include <string.h> 3 4#define SIZE (100) 5 6int main(void) { 7 char line[SIZE]; 8 for (int line_number = 1; fgets(line, SIZE, stdin) != NULL; line_number++) { 9 char* p = strchr(line, '\n' ); 10 // 末尾が改行文字であれば、'\0' で上書きする 11 if( p != NULL ) { 12 *p = '\0'; 13 } 14 int len = strlen(line); 15 printf("[%3d,%3d]%s\n", line_number, len, line); 16 } 17 18 return 0; 19}

実行例:
イメージ説明

参考情報;

  • fgets関数が読み込む改行文字を取り除く

https://programming-place.net/ppp/contents/c/040.html#chomp

投稿2020/05/05 05:05

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imoimoimo

2020/05/06 00:47

ご教授ありがとうございました。 参考にどうにか解決することができました!
katoy

2020/05/06 02:02

パイプでプログラムに流しているファイルの内容が 改行で終わっているか そうでないかで、どのような挙動にるかも試してみてください。 ↑の実行例では、ファイルお最後は改行で終わっていない場合を示しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問