#include "pch.h"
#include <iostream>
#include <cmath>
#include <string>
#include <cstring>
#include <sstream>
#include <istream>
using namespace std;
int main()
{
std::string color, pluralNoun, celebrity;
std::cout << "enter a color: ";
std::getline(cin, color);
std::cout << "enter a plural noun: ";
std::getline(cin, pluralNoun);
std::cout << "enter a celebrity: ";
std::getline(cin, celebrity);
cout << "Roses are " << color << endl;
cout << pluralNoun << "are blue" << endl;
cout << "I love " <<celebrity <<endl;
return 0;
}
Hallo开发人员..
简而言之:我来自Java ..
够了吗?我在读取字符串时已经遇到了很大的问题,不得不搜索大约50页来查找所需的库。另外,我在语句中包含了命名空间std,但是在cout s之前删除std时却收到错误消息。
"ConsoleApplication3.exe" (Win32): "D:\Users\nils\source\repos\ConsoleApplication3\Debug\ConsoleApplication3.exe" geladen. Symbole wurden geladen.
"ConsoleApplication3.exe" (Win32): "C:\Windows\SysWOW64\ntdll.dll" geladen. Symbole wurden geladen.
"ConsoleApplication3.exe" (Win32): "C:\Windows\SysWOW64\kernel32.dll" geladen. Symbole wurden geladen.
"ConsoleApplication3.exe" (Win32): "C:\Windows\SysWOW64\KernelBase.dll" geladen. Symbole wurden geladen.
"ConsoleApplication3.exe" (Win32): "C:\Windows\SysWOW64\msvcp140d.dll" geladen. Symbole wurden geladen.
"ConsoleApplication3.exe" (Win32): "C:\Windows\SysWOW64\vcruntime140d.dll" geladen. Symbole wurden geladen.
"ConsoleApplication3.exe" (Win32): "C:\Windows\SysWOW64\ucrtbased.dll" geladen. Symbole wurden geladen.
Der Thread 0x4d6c hat mit Code -1073741510 (0xc000013a) geendet.
Der Thread 0x4dc8 hat mit Code -1073741510 (0xc000013a) geendet.
Der Thread 0x486c hat mit Code -1073741510 (0xc000013a) geendet.
Das Programm "[2132] ConsoleApplication3.exe" wurde mit Code -1073741510 (0xc000013a) beendet.
谁能解释为什么这行不通,以及是否还有其他读取字符串的方法?据我所知,控制台已加载了所有必需的文件(对于我使用Visual Studio服务器的db文件(我在本地保存的dll。)(对于调试器,我是德国人,“ geendet”表示完成,而不是在那里)。有什么问题
答案 0 :(得分:1)
如果您刚开始学习c ++并使用Visual Studio,我建议您以这种方式创建项目:
如选项所述,它将创建一个空项目,在其中您必须手动在其中添加头文件和cpp文件:
标题文件应转到标题文件夹,而cpp文件应转到源文件夹。
遇到的问题是因为在创建新项目时选择了“ Windows控制台应用程序”,默认情况下,Visual Studio会创建该项目,其中包括名为“ pch.h”的预编译头。
此标头在较大的项目中很有用,基本上,您应该在“ pch.h”标头中包含标头,这些标头将经常在多个文件中使用,例如:
#include <iostream>
#include <string>
等... 然后,您应该在最顶部的cpp文件中包含“ pch.h”。
警告,这甚至都不是主题的基础,但是,如果您只是开始尝试,我想处理一个空项目会更容易,但是以后再做一些关于编译的标头,它们非常有用。
也正如其他提到的那样,尽量避免
using namespace std;
尽可能
希望这对以后有帮助。
答案 1 :(得分:0)
谢谢@“ Radu Z”。您几乎是严厉的:问题是,必须使用标题,我不知道为什么,但是必须为空,我也不知道这在哪里有意义,但是它对我来说删除行关于命名空间,让我留下:
#ifndef PCH_H
#define PCH_H
// TODO: add headers
#endif //PCH_H
我非常感谢你们大家很快回答了这个问题,并保证在接下来的问题中将我的语言更改为英语。关于名称空间,我删除了它,因为无论如何我都必须使用stds。
答案 2 :(得分:-1)
首先,我删除了代码的第一行,即
#include "pch.h"
,因为我没有该文件并且它已编译。也许您也没有该文件。然后,我在“是蓝色”之前放置一个空格,以使复数名词和“是蓝色”没有连接。
cout << pluralNoun << " are blue" << endl;
一切都很好。 也许您的问题是您使用的编译器?我无法破译您的错误,但我认为您应该检查pch.h文件和编译器。
答案 3 :(得分:-1)
根据您的问题,我假设您正在使用 Visual Studio 。 您应该始终有第一行包含行
#include "stdafx.h"
或
#include "pch.h"
最近介绍的。 See also。
然后转到 项目->属性 然后到 C / C ++->预编译头
在第一个设置中:预编译标题,选择创建(/ Yc)
在第二个设置中:预编译头文件,选择 stdafx.h
在第三个设置中:预编译的标题输出文件,选择 $(IntDir)$(TargetName).pch
实际上,这是您定义.pch文件的地方。