とても抽象的な質問で申し訳ないのですが、自分は独学のプログラミング初心者でc++のコードを今回初めて書きました。
ですが、とても汚い書き方をしているように思えてしまうので、改善点を教えていただきたいのです。
プログラムは、txtファイルから問題と答えを読み込んでコマンドプロンプトでクイズをするといったものです。
ans.txtとqus.txtにはそれぞれ問題と答えを行で分けて書いています。
今のところ文字化けなどはなく、自分の思った通りには動いています。
自分的には、変数の初期化がうるさいところや、for文の中身がぐちゃぐちゃなところが気に入らないです。
これが最善手であれば納得しますが、
もっといい書き方があればご教授いただきたいです...!
c++
1 2#include<iostream> 3#include<fstream> 4#include<string> 5using namespace std; 6 7string qus[200]; 8string ans[200]; 9string you; 10int i = 0; 11 12 13 14int main() 15{ 16 // pemファイル読み込み 17 ifstream qifs("qus.txt"); 18 string qline; 19 20 if (qifs.fail()) { 21 std::cerr << "File Open Error" << std::endl; 22 return -1; 23 } 24 while (getline(qifs, qline)) { 25 qus[i] = qline; 26 i++; 27 } 28 29 i = 0; 30 ifstream aifs("ans.txt"); 31 string aline; 32 33 if (aifs.fail()) { 34 std::cerr << "File Open Error" << std::endl; 35 return -1; 36 } 37 while (getline(aifs, aline)) { 38 ans[i] = aline; 39 i++; 40 } 41 42 43 for (int i = 1; i < 200; i++) 44 { 45 cout << i << "." << qus[i - 1] << "\n"; 46 cin >> you; 47 if (you == ans[i - 1]) 48 { 49 cout << "〇\n"; 50 } 51 else 52 { 53 cout << "×" << ans[i - 1] << "\n"; 54 } 55 56 } 57 return 0; 58} 59
qustxt
1に勝利する 2を改善する 3を発達させる 4 5. 6. 7. 8以下200個
anstxt
1win 2improve 3develop 4 5. 6. 7. 8以下200個
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/01 06:21