简单的输入/输出控制台应用程序,不按给定的顺序(结构)打印问题
Simple input/output console application, does not print the questions in the given order (structural)
这个程序是我用在网上找到的废料为我的女朋友制作的。它应该按照程序中给出的顺序问问题(是的,我知道他们是用波兰语问的,但他们说什么并不重要)(这很重要),它工作得很好,但只有当你用一个单词或字母回答时…例如"Yes"或"Y"——如果你回答"Yes Yes",它会跳过第二个问题,直接进入第三个问题。基本上,你在回答一个问题时使用的单词越多,程序就会跳过越多的问题。如果你在第一个问题中回答了"yes yes yes",你可以看到它会跳过3个问题,进入第四个问题,然后如果你回答"yes",它会正常工作,并进入下一个(第五)问题
我希望我写的很清楚,我不熟悉c++,因为我不喜欢那种语言,但它必须要做,所以我得到了所以,帮助伙计们。
p。std::string PL(const char * text)模块只是为了得到一个精美的字母,如果有人想知道的话。
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
std::string PL( const char * text )
{
std::string result;
for(; * text; text++ )
switch( * text )
{
case 'ą': result += static_cast < char >( 0xa5 ); break;
case 'ć': result += static_cast < char >( 0x86 ); break;
case 'ę': result += static_cast < char >( 0xa9 ); break;
case 'ł': result += static_cast < char >( 0x88 ); break;
case 'ń': result += static_cast < char >( 0xe4 ); break;
case 'ó': result += static_cast < char >( 0xa2 ); break;
case 'ś': result += static_cast < char >( 0x98 ); break;
case 'ż': result += static_cast < char >( 0xbe ); break;
case 'ź': result += static_cast < char >( 0xab ); break;
case 'Ą': result += static_cast < char >( 0xa4 ); break;
case 'Ć': result += static_cast < char >( 0x8f ); break;
case 'Ę': result += static_cast < char >( 0xa8 ); break;
case 'Ł': result += static_cast < char >( 0x9d ); break;
case 'Ń': result += static_cast < char >( 0xe3 ); break;
case 'Ó': result += static_cast < char >( 0xe0 ); break;
case 'Ś': result += static_cast < char >( 0x97 ); break;
case 'Ż': result += static_cast < char >( 0xbd ); break;
case 'Ź': result += static_cast < char >( 0x8d ); break;
default: result += * text; break;
}
return result;
}
int main()
{
SetConsoleTitle ("martwy zajac");
HWND hwnd = GetConsoleWindow();
if( hwnd != NULL ){ MoveWindow(hwnd ,340,100 ,800,300 ,TRUE); }
string odpowiedz1,odpowiedz2,odpowiedz3,odpowiedz4,odpowiedz5,odpowiedz6,odpowiedz7,odpowiedz8,odpowiedz9,odpowiedz10,odpowiedz11,odpowiedz12,odpowiedz13,odpowiedz14,odpowiedz15,odpowiedz16,odpowiedz17,odpowiedz18,odpowiedz19,odpowiedz20,odpowiedz21;
cout <<PL("martwy zając:nn");
cout <<PL("Witaj, chciałbym żebyś wytłumaczył mi dzieło sztuki.nn");
Sleep(3000);
cout <<PL("Wciśnij ENTER jeśli jesteś gotowy.");
_getch();
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Do czego sluży żaba, a do czego szutka?nn");
cin >>odpowiedz1;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Która łapa tego kota jest ładniejsza?nn");
cin >>odpowiedz2;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Czy ta łapa, która bardziej się Tobie podoba jest ładniejsza gdy kot miauczynprosząc o jedzenie, czy jak miauczy prosząc o pieszczotę?nn");
cin >>odpowiedz3;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Czy wolisz dzwięk tramwaju dobiegający zza okna w mroźny poranek, czy w jesiennywieczór?nn");
cin >> odpowiedz4;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Czy możesz opisać smak ciastka które jadłeś ostatnio?nn");
cin >> odpowiedz5;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Namalujesz mi ten smak, jaki ma kolor?nn");
cin >> odpowiedz6;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Na kafelki w łazience upadła mi gąbka - jakiego koloru jest dzwięk który wydała?nn");
cin >> odpowiedz7;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Na kafelki w łazience upadła mi szklanka, nie rozbiła się - jakiego koloru dzwięk wydała?nn");
cin >> odpowiedz8;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Cyfra 4 jest niebieska czy szara?nn");
cin >> odpowiedz9;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Wchodzę. Czy widzę światło?nn");
cin >> odpowiedz10;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Wchodzę. Czy słyszę światło?nn");
cin >> odpowiedz11;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Wchodzę. Czy czuję smak światła?nn");
cin >> odpowiedz12;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Cyfra 4 czy zmienia kolor, gdy staje się liczbą?nn");
cin >> odpowiedz13;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Biegnę. Co się zmieniło gdy biegnę a nie wchodzę? Widok światła? Dzwięk światła?Smak światła?nn");
cin >> odpowiedz14;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Gdy pytałam o kolor smaku ciastka, jakie pytanie usłyszałeś/aś?nn");
cin >> odpowiedz15;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Jaki kolor ma słowo "sztuka?"nn");
cin >> odpowiedz16;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Jaki kolor ma słowo "religia?"nn");
cin >> odpowiedz17;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Jaki kolor ma słowo "jestem?"nn");
cin >> odpowiedz18;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Godzina 16:30 jest sześcianem, kulą, czy inną bryłą?nn");
cin >> odpowiedz19;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Godzina 4:30 (po południu) jest sześcianem, kulą, czy inną bryłą?nn");
cin >> odpowiedz20;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Jak przekroczyć zmysłowy pozór sztuki?nn");
cin >> odpowiedz21;
system("cls");
cout <<PL("martwy zając:nn");
cout <<PL("Dziękujęnnn");
Sleep(3000);
cout <<PL("Żegnaj.");
Sleep(2000);
}
根据cin
的提取操作员(<<
)的文档,
[…]它总是考虑空格(空格、制表符、换行符…)作为被提取值的终止符,因此提取字符串意味着总是提取单个单词,而不是一个短语或整个句子。
(参见http://www.cplusplus.com/doc/tutorial/basic_io/"cin和字符串"一节)
因此,您所观察到的与文档中的行为完全一致:如果您输入"yes1 yes2"并按enter键,cin << my_string_variable
指令将在my_string_variable
中存储"yes1",并将在下一个cin
中保留"yes2"。
要克服这个问题,使用以下命令:
getline (cin, my_string_variable);
您需要的是从cin
获得一整行输入,并且只处理第一个char
。试试下面的代码:
#include <iostream>
using namespace std;
int main(){
char a[1000],c;
cin.getline(a,1000);
cout<<"nThe string received:"<<endl<<a<<endl;
cout<<"nThe answer to process:"<<endl<<a[0]<<endl;
return 0;
}
关键命令为getline
。您可能需要编写一个循环来查找第一个非空格字符,并将大写转换为小写以正则化答案。如果不是"y"或"n",你的代码应该说"对不起,我不明白你的答案。请回答yes (y) or no (n)",并在while
循环中再次询问答案。
- 按字母顺序对结构内数组变量中的名称进行排序
- 有了memory_order_relaxed,原子变量的总修改顺序如何在典型体系结构上得到保证
- C++ MDC final-在字符类型的数组结构中按字母顺序对记录中的名称进行排序
- 为什么结构属性声明和初始化顺序的行为是这样的?
- 按字母顺序对结构数组进行排序
- C++中的结构是否按顺序分配内存?每次都以某种方式获得指针比较的正确答案
- 结构根据空基类顺序更改大小
- 结构中的位顺序不是我所期望的
- 为什么在未由语言本身定义的结构字节中的位字段顺序
- Arduino:联合中的结构顺序
- 编译时随机化结构成员的顺序
- 结构化绑定的标识符是否按顺序初始化?
- 按字母顺序打印结构输入C
- 具有类层次结构时按什么顺序调用方法
- 结构对齐填充、最大填充大小和结构成员顺序
- 一种按排序顺序保持元素的数据结构,支持快速插入和计算连续元素之间的最大差异
- c++设置了保持插入顺序的数据结构
- 使用提升 Qi 解析为结构的随机顺序
- 结构/对象内的存储顺序
- 简单的输入/输出控制台应用程序,不按给定的顺序(结构)打印问题