![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
>int A[MAX]; (MAXは適当に指定)
>に対して、
>A[0]=15
>A[1]=4
>A[2]=8
>A[3]=25
>と代入したいのです。
これを、aaa.exe < aaa.txt で実現するのであれば、
標準入力stdinからの入力を行うために
scanf("%d %d %d %d", A[0], A[1], A[2], A[3]);
でいかがでしょうか。
No.2の方へのお礼にも書いてあるとおり、
for(i=0;fscanf(stdin,"%d",&A[i])!=EOF;i++){}
と書くことで出来ました。
scanfを用いてもできるようなので、こちらも参考にさせていただこうと思います。
No.1における回答についても合わせまして、ありがとうございました。
No.2
- 回答日時:
入門書でscanfとか使って「キーボード」から入力する、というのを見たことは無いですか?
入門書では省略されていますが、正確には「キーボード」ではなく、「標準入力」からの入力です。
通常は「端末(=キーボード)入力」が「標準入力」と結びついています。なので、リダイレクトが出てこないうちは「標準入力」=「キーボード」でとりあえずは問題ないわけです。
標準入力は、ファイルと同じように扱います。
つまり、基本は
http://oshiete.goo.ne.jp/qa/7218314.html
と一緒です。
・標準入力専用の関数を使う(fscanf→scanf等)
・入力先のFILE *として、fopenしたものではなく、定義済みのstdin を使う(fscanf(fp,~ → fscanf(stdin,~ 等)
のいずれかの方法が使えます
for(i=0;fscanf(stdin,"%d",&A[i])!=EOF;i++){}
とすることでできました。
私が以前に投稿した質問を用いて回答を書いてくださったこともあり、大変分かりやすかったです。
ありがとうございます。
No.1
- 回答日時:
aaa.exe < aaa.txt は aaa.exe 15 4 8 25 と同じ意味ではありません。
aaa.exe < aaa.txt は標準入力stdinからのファイル入力ですが、aaa.exe 15 4 8 25 はコマンドラインから argv[1]、argv[2]、argv[3]、argv[4] で 15 4 8 25 という「引数」を取得するものですので、C言語のプログラムの中では取扱いが全く違います。
>また、上の場合が正しかったとしても、aaa.txtの中身が15 4 8 25 [改行] 2 4 5 10 などのように複数行あったときにはどのようになるのでしょうか?
これは「入力ファイルに複数行のデータがある」というだけです。
プログラムaaa.exe内でどのように読み込んでいるかによって、どうなるかが決まります。
この回答への補足
回答ありがとうございます。
なるほど、コマンドラインから引数の取得とは違ったのですね。
では aaa.exe < aaa.txt はどのように扱えばよいのでしょうか?
具体的な操作をいうと、main関数内で定義した配列
int A[MAX]; (MAXは適当に指定)
に対して、
A[0]=15
A[1]=4
A[2]=8
A[3]=25
と代入したいのです。
標準入力からの入力ということですが、実際にどのような操作をすればよろしいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- 教えて!goo S・AAA・AA・A・Bグレード獲得ユーザーの方々は、グレードアップや獲得dポイント数上昇も目当てに 10 2022/11/19 08:01
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- 妊娠 胸がAAAやAAの女性でも妊娠したらB、Cくらいになるのでしょうか? 4 2022/09/12 21:14
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
Eclipseコンソール表示を、リセ...
-
C言語 逆ピラミッドの作り方
-
2進数の1の数を数える問題
-
C言語scanf_sで何故か2回入力に...
-
Excel VBAで、Application.Inpu...
-
WindowsでEOF
-
コマンドプロンプトからのEOFの...
-
scanf が無視されます
-
c言語の数当てゲームプログラム...
-
プログラミングの問題です 「金...
-
キーボードを押すまで処理を中...
-
キー入力制限について
-
VB.NETで16進数+16進数や16進...
-
Eclipseでコマンドラインを入力...
-
"scanf"でエンターで改行させな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
C言語 逆ピラミッドの作り方
-
double型が正常に認識されてい...
-
ワードで文字を入力する時の変...
-
コマンドプロンプトからのEOFの...
-
Linuxで入力待ちなしkeyread関...
-
scanf が無視されます
-
if文の条件にscanf関数を使うと…?
-
C言語について
-
cout関数を使っているのですが...
-
enterでループ終了
-
"scanf"でエンターで改行させな...
-
C言語でgetchar();が上手く使え...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報