首页 > 解决方案 > 在 C++ 中读取字符串,在 C++ 中编译

问题描述

#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;
}

你好开发者..

简而言之:我来自 Java ..

够了吗?我在阅读字符串方面已经遇到了很大的问题,并且不得不搜索大约 50 页来寻找所需的库。此外,我在声明中包含了命名空间 std,但是当我在 cout 之前删除 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 服务器的 pdb 文件,我在本地保存的 dll。(对于调试器,我是德国人,“geendet”表示它已完成,而不是那里有什么问题)

标签: c++stringcompilation

解决方案


如果您刚开始学习 c++ 并使用 Visual Studio,我建议您以这种方式创建项目: 选择空项目

正如选项所说,它将创建一个空项目,您必须在其中手动添加头文件和 cpp 文件:

只需右键单击文件夹并选择添加 -> 添加新项目

头文件应转到 Header 文件夹, cpp 文件应转到 Source 文件夹。

您遇到的问题是,当您创建新项目时,您选择了“Windows 控制台应用程序”,默认情况下,Visual Studio 将创建包含名为“pch.h”的预编译头文件的项目。

这个头文件在更大的项目中很有用,基本上你应该包含在“pch.h”头文件中,你会经常在多个文件中使用,比如:

#include <iostream>
#include <string>

等等......然后你应该在最顶部的cpp文件中包含“pch.h”。

警告 tho,这甚至不是该主题的基础知识,但是如果您只是开始尝试并尝试一下,我认为处理一个空项目会更容易,但是以后对预编译的标头进行一些研究,它们非常有用。

也如其他提到的,尽量避免

using namespace std;

越多越好

希望这对您以后有所帮助。


推荐阅读