C++の基本的な配列でわからないことがあります。
例えば以下のような,3段落があるテキストファイルを用意しておき,
--------------
//abc.txt
abcde
fghij
klmno
--------------
用意した配列char data[3][20]へ,
上から順番にdata[0]に"abcde",data[1]に"fghij",data[2]に"klmno"を挿入したいです。
とりあえず1行だけ,以下のようなプログラムで出力表示できました。
#include <string>
#include <iostream>
using namespace std;
int main()
{
char cir_data[3][20];
string filename("abc.txt");
FILE* fp = fopen( filename.c_str(), "r" );
fgets(data[0], 20, fp);
cout << data[0] << endl;
fclose(fp);
return 0;
}
結果は,
--------------------
abcde
--------------------
となったので,2・3番目もforループでできるかなと思ったら,良い結果が出ません。
以下は間違えているプログラムです。
int main()
{
char cir_data[3][20];
int i;
string filename("abc.txt");
FILE* fp = fopen( filename.c_str(), "r" );
for(i=0; ; ){
fgets(cir_data[i], 20, fp);
if(strlen(cir_data[i])<3) break;
if(cir_data[i][0] != '/') i++;
cout << cir_data[i] << endl;
}
fclose(fp);
cout << "i = " << i << endl;
return 0;
}
結果は文字化けしてます。
何回ループしたか,iも出力してみましたが,なぜか6回カウントされています。
どこが誤っているのかわからず困っています。
No.1ベストアンサー
- 回答日時:
>fgets(data[0], 20, fp);
>cout << data[0] << endl;
この部分を、配列の添字が0,1,2と変化するように
for文を書けばよい、というのはわかりますか?
int型の変数iを用意して、iが0,1,2と変化するような
for文は書けますか?(for文の中身は、とりあえず何もなし)
回答ありがとうございました。
すいません。データが格納されているか確認のためのcoutの部分が間違ってました…。
for文の外に出したら,きちんと入っているのを確認できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
複数行のデータのPOST処理に関して
-
エラーメッセージ(無効な間接...
-
配列同士の足し算のループ処理
-
fgetcsvでデータが何も表示され...
-
Resource id #3 と表示されま...
-
php Undefined variableエラー
-
smartyでページングするには
-
phpでCSVファイルの中身を多次...
-
◆速い、ファイル読み込みは?
-
C言語でCSVファイルの行数を読...
-
ヒアドキュメントの中のfor文
-
PHPでCSVの一部の行を編集したい
-
CSVファイルの最終行のデー...
-
phpメールフォームから送信され...
-
多次元配列の一次元目の最大値...
-
csvの内容を行単位で削除したい
-
PHP5でCSVの指定行データだけを...
-
preg_splitがうまくいかないの...
-
PHPでこのコード自体に意味は無...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数行のデータのPOST処理に関して
-
Resource id #3 と表示されま...
-
別ファイルの構造体の値を読み...
-
PHPでCSVの一部の行を編集したい
-
バイナリファイルの内容を、そ...
-
CSVファイルの最終行のデー...
-
ヒアドキュメントの中のfor文
-
stdClass Objectを連想配列のよ...
-
◆速い、ファイル読み込みは?
-
C言語でCSVファイルの行数を読...
-
phpでCSVファイルの中身を多次...
-
rubyで複数列のデータを一行に...
-
多次元配列の一次元目の最大値...
-
行数が30万件ほどあるCSVから、...
-
配列同士の足し算のループ処理
-
csvの内容を行単位で削除したい
-
FortranのOPEN文
-
CSVデータの行数カウントをした...
-
自動で番号を振りたい
-
While文を使って配列の中身を全...
おすすめ情報