gpt4 book ai didi

c++ - 测验不认可一个好的答案

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:58 25 4
gpt4 key购买 nike

我正在做一个测验,我想从 txt 文件中加载问题和答案。

当我运行这个程序时,即使我选择了一个正确的答案,它也显示它是不正确的。

例如,第一个答案应该是“c”,第二个应该是“d”。

我把一些文字改成了英文,但我觉得从上下文来看一切都可以理解。

#include <iostream>
#include <fstream> //bibl your_answerialna za zapis (od file)
#include <cstdlib>
#include <algorithm>
#include <string>

using namespace std;

string topic, nick;
string quest[5], odpA[5], odpB[5], odpC[5], odpD[5], correct[5];
string your_answer;
int punkty=0;

int main()
{
string linia;
int nr_linii=1;
int nr_pytania=0;

fstream plik; //zmienna plikowa tj nazwa pliku w kodzie zrodlowym + jej nazwa, moze byc ich wiele w programie

plik.open("quiz.txt", ios::in); //funcka otwarcia zmiennej plik (nazwa pliku , tryb otwarcia), ios:in tj wprowadz do programu

if(plik.good()==false) //funkcji z bibl fstrem sprawdzajaca czy plik istnieje

{
cout<<"nie ma takiego pliku";
exit(0); //zakonczenie programu z bibl <cstdlib>
}



while(getline(plik, linia)) //pobieramy linie do "linia"
{
switch(nr_linii)
{
case 1: topic=linia; break;
case 2: nick=linia; break;
case 3: quest[nr_pytania] = linia; break;
case 4: odpA[nr_pytania] = linia; break;
case 5: odpB[nr_pytania] = linia; break;
case 6: odpC[nr_pytania] = linia; break;
case 7: odpD[nr_pytania] = linia; break;
case 8: correct[nr_pytania] = linia; break;
}
if(nr_linii==8) {
nr_linii=2;
nr_pytania++;
} //gdy program zczyta linie 8, wracamy do 8, i zwiekszamy nr pytania zapisujac jedo bibliotek
nr_linii++;
}
plik.close(); //funkca zamykajaca


for(int i=0; i<=4; i++)
{
cout<<"your_answer on question"<<endl;
cout<<quest[i]<<endl;
cout<<"A "<<odpA[i]<<endl;
cout<<"B "<<odpB[i]<<endl;
cout<<"C "<<odpC[i]<<endl;
cout<<"D "<<odpD[i]<<endl;
cout<<"twoja odp";
cin>>your_answer;

transform(your_answer.begin(), your_answer.end(), your_answer.begin(), ::tolower); //zamian duzych liter na male
if (your_answer==correct[i])
{
cout<<"Dobrze! Zdobywasz punkt!"<<endl;
punkty++;
}
else
cout<<"Fail, no point, correct answer is: "<<correct[i]<<endl;

}

cout<<"Koniec quizu. Zdobyte punkty: "<<punkty;
return 0;
}

here's the text file我要加载。

最佳答案

变化:

  1. 将[] 改正为char 类型。然后需要更改案例 8 并检查 tolower() 的正确答案。
  2. 使文件打开和错误处理更简单。移除了 exit(0) 以遵守良好的编程习惯

代码现在可以识别正确答案。如果您还有问题,请告诉我 S.Grzejnik

    #include <iostream>
#include <fstream> //bibl your_answerialna za zapis (od file)
#include <cstdlib>
#include <algorithm>
#include <string>

using namespace std;

string topic, nick;
string parts[5][5]; //5 questions and 5 string parts to each one
char correct[5];
char your_answer;
int punkty=0;

int main()
{
string linia;

ifstream plik; //zmienna plikowa tj nazwa pliku w kodzie zrodlowym + jej nazwa, moze byc ich wiele w programie

plik.open("quiz.txt"); //funcka otwarcia zmiennej plik (nazwa pliku , tryb otwarcia), ios:in tj wprowadz do programu

if(plik) //funkcji z bibl fstrem sprawdzajaca czy plik istnieje
{
getline(plik, topic);
getline(plik, nick);

for(int pytanie = 0; pytanie < 5; pytanie++) {
getline(plik, linia);
for(int nr_linia = 0; nr_linia < 5; nr_linia++) {
parts[pytanie][nr_linia] = linia;
getline(plik, linia);
}
correct[pytanie] = linia[0];
}
plik.close(); //funkca zamykajaca

for(int pytanie = 0; pytanie < 5; pytanie++)
{
cout<<"your_answer on pytanieuestion"<<endl;
cout<<parts[pytanie][0]<<endl;
cout<<"A "<<parts[pytanie][1]<<endl;
cout<<"B "<<parts[pytanie][2]<<endl;
cout<<"C "<<parts[pytanie][3]<<endl;
cout<<"D "<<parts[pytanie][4]<<endl;

cout<<"twoja odp: ";
cin>>your_answer;

if (tolower(your_answer)==correct[pytanie])
{
cout<<"Dobrze! Zdobywasz punkt!"<<endl;
punkty++;
}
else
{
cout<<"Fail, no point, correct answer is: "<<correct[pytanie]<<endl;
}
}

cout<<"Koniec quizu. Zdobyte punkty: "<<punkty<<endl;
}
else
{
cout<<"nie ma takiego pliku"<<endl;
exit(0); //zakonczenie programu z bibl <cstdlib>
}

return 0;

}

关于c++ - 测验不认可一个好的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39964833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com