- ベストアンサー
C言語のファイル読み込み
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
strcpy()の使い方を確認しましょう。
その他の回答 (8)
- Tacosan
- ベストアンサー率23% (3656/15482)
結局のところ「今どうやっていて何が問題なんですか」としか言いようがないわけですがとりあえず 1点突っ込んでおきます. #1 へのお礼では「キーボード入力で[test.5.30]などと打った時、上手く格納できず」と書かれていますが, #3 への補足では「数列混じりの文字列(例:test.5.30.csv)をキーボード入力で格納する」となっています. どのようなことをしたいのか, 正確に表現してください.
お礼
回答ありがとうございます
補足
申し訳ありません。 色々試してみているのですが、今は下のような形です。 char fname[30]; char infname[30]; printf("読み込むファイル名を入力してください\n"); gets(fname); strcpy(fname,infname); strcat(infname,".csv"); inp=fopen(infname,"r"); if(inp==NULL){ printf( "%sファイルが開けません\n",infname); return -1; }else{ そして[test.5.28]と入力すると、 フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ=xク.csvファイルが開けません と帰ってきます。
- wormhole
- ベストアンサー率28% (1621/5657)
>キーボード入力で[test.5.30]などと打った時、上手く格納できず、よくわからない文字列になってしまいます。 #6の方も書かれていますが、実際にどうやってうまく格納できないのですか。
お礼
回答ありがとうございます。
補足
申し訳ありません。 自分が書いている形はANo.8さんのところに書きました。
- Wr5
- ベストアンサー率53% (2177/4070)
>数列混じりの文字列(例:test.5.30.csv)をキーボード入力で格納する方法です。普通に格納しようとすると完全に文字化けのようになってしまいます。どうすればそのままの形で格納できるのでしょうか? で、今はどのようにやっていますか? scanf()で指定がおかしいとか、バッファオーバーフローしているとか…… どうやっているのかが不明では適切な対処方法も厳しいかと。 # まぁ、私ならfgets()とかで受けますかねぇ。
お礼
回答ありがとうございます。
補足
申し訳ありません。 自分が書いている形はANo.8さんのところに書きました。
- Tacosan
- ベストアンサー率23% (3656/15482)
方針はいいですが文字列リテラルを書き換えちゃダメです~>#3. 別の領域にコピーしてやってください.
お礼
回答ありがとうございます。
- osamuy
- ベストアンサー率42% (1231/2878)
こんなのとか。
お礼
回答ありがとうございます。
補足
すいませんでした。自分の説明下手かつ不足ですね。 もうひとつわからないことがありまして、 数列混じりの文字列(例:test.5.30.csv)をキーボード入力で格納する方法です。普通に格納しようとすると完全に文字化けのようになってしまいます。どうすればそのままの形で格納できるのでしょうか?
- darekaosieteyo
- ベストアンサー率66% (14/21)
strcpyでバッファにコピーして strlenで文字列長を取得して、 格納してある文字がピリオドかどうか後ろから一つずつ見ていって、 ピリオドがあった所に\0(文字列終端)を埋めればいいんじゃないでしょうか?
お礼
ありがとうございます。 それで、拡張子を切り取ることはできそうですね。
- wormhole
- ベストアンサー率28% (1621/5657)
申し訳ないのですが質問の意味がわかりません。 入力された「????」を格納すればいいだけの話じゃないんでしょうか? もしかして、後で入力はされるんだけどまだ入力されてない「????」を格納したい。ということなんでしょうか。
お礼
ごめんなさい、上の補足は嘘でした。 数列混じりの文字列を上手く格納できません。 キーボード入力で[test.5.30]などと打った時、上手く格納できず、よくわからない文字列になってしまいます。
補足
そうですね、まだ入力されてないのでどんな文字列・数列か分からないものなので、どうしたらいいかわからない。ということです。 文字数が分かっていれば、また、「.」が途中で使われていないということなら出来るのですが・・・・
関連するQ&A
- C言語でファイルの入出力
C言語についての質問です。 統計学のシュミレータを作っていまして 大量の数値データ(1000程度)のデータを入力する必要があるのですが scanfなどで入力要求するには、数に無理がありますので 外部テキストファイルからプログラムに読み込みたいのですが 方法が分かりません。 希望としては、まずテキストファイルに 1000個の数値データを入力しておいて (数値データのみをコンマとか改行で区切ったものをあらかじめ作成しておく) それを1000個の配列 int data[1000]に 順番にインポートできるようにしたいです。 データ数は1000個で固定、すべてint型でOKです。 数値として処理したいので 文字列としてインポートしてしまうのはダメです。 あくまでint型の数値として考えてください。 回答よろしくお願いします。
- ベストアンサー
- C・C++・C#
- c言語プログラミングHELP!
c言語でプログラムを組んでるんですが、どうしてもわからないものがありまして、 まず一つ目がキーボードから英小文字を一つ入力し、その文字を大文字に変換して出力するプログラミングです。結果がまずひとつの英小文字を入力して、入力した文字と、大文字に変換した文字を出力するプログラミングです。 ちなみにヒントは'a'=97,'A'=65です 二つ目が二桁の16進数('41'から'49','50'から'59')を入力すると対応する文字を表示するプログラミングです。また、%xは使用しないこと。なお、入力に間違いはないものとする。(ヒントは入力は一つの数値か、二つの文字か?だそうです。) 結果は二桁の16進数('41'から'49','50'から'59')を入力して、文字コードの二桁の数字と文字を出力するプログラミングです。 お願いします。
- 締切済み
- C・C++・C#
- C言語のプログラミングについての質問です
C言語の課題で数値を入力したらその数に40+して二乗するプログラミングを作りたいのですがソースがいまいちわかりません どなたかご教授お願いします
- 締切済み
- C・C++・C#
- c言語:ファイルの入出力
2つの行列をファイルから読み込み、その積をファイルに出力するプログラムを 作りたいのですが、参考書を読んでもよくわからないので教えて頂きたいです。 テキストファイルの文字列のコピーなどは、参考書を見てできたのですが、 ファイル入出力を使った数値の計算がいまいち理解できませんでした。 注意点は以下の通りです。 ・ファイルはカンマ区切りのテキストファイルとし、入力ファイルはエクセルで作成。拡張子は.csv。 ・ファイル名はキーボードから入力できるようにする。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C言語でバイナリファイルの読み込み
C言語のプログラミングに関する質問です。 x個(分かっている数)のfloat型の数値が入ったバイナリファイルを読み込んで、 要素数[x]のfloat型配列として扱うにはどういったコードを書けばよいのでしょうか? どなたかご教授いただければ幸いです。
- ベストアンサー
- C・C++・C#
- C言語のプログラミングについてです><
今C言語のプログラミングの勉強をしているのですが、わからないプログラムがでてきたので教えてくださる方がいらっしゃれば、ご教授願いたいです。 数当てゲームの作成 1~9(0は除く)のなかから4つの異なる数字をランダムで選択し、4桁の数をつくる。ユーザは4つの数字の並びを入力して、作られた数を当てる。 ユーザの入力した数と作られた数を比較して、同じ数字が同じ桁にある場合は"Hit"というヒントを与える。また、同じ数字が異なる桁にある場合は"Blow"というヒントを与える。すなわち、作られた数が5849で、ユーザが4829という数値を入力した場合、"2 Hit 1 Blow"というヒントが表示されるようにする。 ユーザは10回まで、入力するチャンスが与えられる。 といった感じのプログラミングなんですが、C言語初心者である自分にはまったくわかりません; ; どなたかわかる方がいらっしゃれば、助けていただけないでしょうか?よろしくお願いします!
- 締切済み
- その他(学問・教育)
- C言語 CSVファイルの読み込み
C言語でCSVファイルから数字を読み込み、それを計算するというプログラムを作りたいのですが、CSVファイルについて全く知識が無く、加えてCSVファイルを利用したプログラムを作るのが初めての為、勝手がわかりません。 まずCSVファイルというのは、 1.2,2.3,3.4 4.5,5.6,6.7 7.8,8.9,9.0 といった数字(文字列)をカンマで区切ったテキストファイルですよね? それをどのようなプログラムで読み込むのでしょうか? 例えば、上記の数字を読み込み、 a. 1.2+4.5+7.8=x b. 8.9-5.6-2.3=y c. 3.4*6.7*9.0=z と計算する場合のプログラムを教えていただきたいです。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C言語 プログラミング
C言語プログラミングで分からない問題があるのですが、 nを入力して、0~nまでの数値のうち、 (1)偶数のみ足しなさい (2)3の倍数のみ足しなさい の2つのプログラムがわからいのですがどなたか教しえていただけませんか?
- 締切済み
- その他(学問・教育)
- C言語のプログラミングについてです。
C言語のプログラミングについて教えて欲しいです。 scanf関数を用いて、キーボードから文字列(最大30文字)を読み込み、これをchar型配列に格納します。最大10個までの文字列が入力された場合か、「END」が入力された時、入力された逆順で画面に表示するプログラム。作成しなさい。 〈完成例〉 adjm 10mdjp jpd-4 njad' END njad jpd-4 10mdjp adjm
- 締切済み
- C・C++・C#
お礼
あー・・・中身が逆ですね・・・・・。 皆さん、すいませんでした。 ありがとうございます。万事解決しました。 こんな簡単な事に2度手間3度手間をかけさせて本当に申し訳ありませんでした。 今後聞く時は自分の書いた文を出して質問するようにします。