[過去ログ] 0からの、超初心者C++相談室 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
934
(4): デフォルトの名無しさん [] 2024/08/25(日) 18:28:51.25 ID:uK1NQ0Uz(1/2) AAS
質問です。参考書に乗ってた例試してたんですが下のコードがどういう動作してるのかよくわかりません。実行したらif(argc !=2)のところのコメント表示しかされませんでした。
#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char *argv[])
{
if(argc !=2) {
cout <<"使い方: WRITE <ファイル名>\n";
return 1;
}

ofstream out(argv[1]);

if(!out) {
cout <<"出力ファイルが開けません\n";
return 1;
}

char str[80];
cout << "文字列をディスクに書き込み、$で停止します\n";

do {
cout << ": ";
cin >> str;
out << str << endl;
}while(*str !='$');

out.close();
return 0;
}
935
(2): デフォルトの名無しさん [sage] 2024/08/25(日) 18:44:55.52 ID:tzsbYjlF(1) AAS
>>934
https://www.google.com/search?q=main+argc
937: 934 [] 2024/08/26(月) 00:51:12.62 ID:Lf2Vflpz(1/2) AAS
参考書に載ってるからまさかと思ったんですが>>934のコードってif文のreturnで強制終了させられてるってことですよね?
ちょっと気になってif文のところコメントアウトして動かしてみたらdo while文のところまで動いてたからif(argc !=2)の説明文表示しておいてがreturn 1で返してmainのところが終了させてるのかというのであってますか?
しかも出力ファイル検出用のif文のところも絶対に入る形になっちゃってるみたいなので説明文はdo while文の入力で出力ファイル指定してね。みたいな文章ついているんですが例として出てるのに欠陥あるコードという認識でよろしいのでしょうか?
938: 934 [] 2024/08/26(月) 01:02:13.28 ID:Lf2Vflpz(2/2) AAS
自己解決しました。
今回の例って実行時に一緒に書き込みファイル名入力するだけだったのを気付いてなかっただけでした。
941: デフォルトの名無しさん [sage] 2024/08/26(月) 09:42:05.98 ID:B88aYAlq(1) AAS
>>934
「よくわかりません」というのは質問になっていません。
何がわからないのかが伝わるようにまとめてください。

結果からすると argc や argv がコマンドラインから渡されるものだということがわかっていなかったようですが、質問一般のやり方としては「こうなると理解している」「でも実際にはこうなった」という形にすると伝わりやすいと思います。
質問を整理する過程で答えが分かってしまうのもよくあることです。 (ラバーダック・デバッグ)

それと参考書を元にしている場合は参考書のタイトルを書くのが望ましいです。
もしその本を持っている人がいたら前後の文脈からより適切な回答をできますし、同じ疑問をもった人がウェブ検索でここにたどり着くことが出来るかもしれないからです。

と、超初心者スレらしく質問の仕方の基本を書いておきます。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.315s*