Visual Studio忽略(?)第二个字符数组输入

时间:2017-05-29 14:28:13

标签: c++ arrays char

今天我将我的程序代码从Code :: Blocks导出到Visual Studio(我最近切换到使用VS),但是当我构建并测试它时,我收到了一些意想不到的结果。这只是代码的错误片段:

#include "stdafx.h"
#include "iostream"
using namespace std;

int main()
{
char service[50], key1[] = "1", s[1000];
cout << "Please select one of the following services:\n1 - Text.\n2 - Numbers.\n\n";
cin >> service;

if (strcmp(service, key1) == 0)
{
    cout << "\nPlease insert your word/phrase. Press 0 to return.\n\n";
    cin.clear();
    cin.sync();
    cin.getline(s, 100);
    cout << endl;
}
return 0;
}

...结果:result of running the code

如您所见,我可以输入&#34;服务&#34;变量(1)很好,但控制台不允许我输入&#34; s&#34; /短语,只是跳过并去 cout&lt;&lt; endl 后跟运行时结束。

*我初始化变量&#34; service&#34;因为 char 而不是 int 是因为程序在输入非数字值的情况下将用户返回到初始菜单。但是,无论我是否将第一个输入变量用作 int ,我都会遇到完全相同的问题。

然而,如果我尝试使用 cin 而不是 cin.getline 输入我的单词,它实际上会起作用。但这只是一个小小的安慰,因为我经常需要输入整个短语,而不仅仅是单词。即便如此,当稍后代码要求我为&#34; service&#34;输入新值时,我也会遇到同样的问题。

我使用的是最新版本的Visual Studio(Community 2017),并将该项目创建为Win32控制台应用程序。

如果有人知道这方面的解决方法,我非常感谢任何帮助,谢谢。

0 个答案:

没有答案
相关问题