C++的介绍,我陷入困境 我刚刚开始星期一的C++课程介绍,我觉得完全不在我的深度。首先,他们告诉我安装Crimson editor和Cygwin来编译文件:

C++的介绍,我陷入困境 我刚刚开始星期一的C++课程介绍,我觉得完全不在我的深度。首先,他们告诉我安装Crimson editor和Cygwin来编译文件:,cygwin,codeblocks,ifstream,getline,ofstream,Cygwin,Codeblocks,Ifstream,Getline,Ofstream,Crimson editor不允许我做任何事情所有选项似乎都完全变灰了 Cygwin的类似之处在于,我可以按照提供给类的教程文件的指示从批处理文件中打开命令提示符,但我无法从中执行任何操作。我已经请求帮助,但还没有收到回复,所以我决定看看是否可以在网上找到帮助 在遇到这些问题之后,有人建议我使用其他在线用户的代码块,我一直认为这些代码块非常有效。我的第一个问题是,当需要编译/调试文件时,代码块是否会成为一个问题?他们已经声明,对于每个分配,每次提交都应该包含一个makefile、一个makede

Crimson editor不允许我做任何事情所有选项似乎都完全变灰了

Cygwin的类似之处在于,我可以按照提供给类的教程文件的指示从批处理文件中打开命令提示符,但我无法从中执行任何操作。我已经请求帮助,但还没有收到回复,所以我决定看看是否可以在网上找到帮助

在遇到这些问题之后,有人建议我使用其他在线用户的代码块,我一直认为这些代码块非常有效。我的第一个问题是,当需要编译/调试文件时,代码块是否会成为一个问题?他们已经声明,对于每个分配,每次提交都应该包含一个makefile、一个makedebug,并且将根据以下标准进行标记:

评分方案

您将根据以下标准进行评分:

程序编译时无错误20% 正确的程序执行20% C++程序正确性与风格20% 计划文件20% 测试计划20% 总计100%

不幸的是,他们还没有向我们介绍很多这样的概念,但我希望他们能很快介绍它们,因为我在第一节的末尾,他们说我们应该能够完成第一个任务,即编写4个程序

这就引出了下一个问题。我试图练习使用whilegetline,但又遇到了一些问题,我几乎没有编程语言方面的经验,因此决定选修这门课,因为它应该是一门入门课。有趣的是,While是一个将在课程后面介绍的概念,但幸运的是,我从在线视频中对它有了一个非常基本的了解。下面是我尝试运行的代码:

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main()
{

    string docName;
    cout<<"What is the file name you would like to open?"<<endl;
    cin>> docName;

    string s, line;
    ifstream in (string docName);

    while (getline(in, line))
        s+=line+"\n";
    cout << s;

    return 0;
}
这里有一个错误,我不确定为什么我会收到这个错误。此外,我在完全理解代码的3个方面时遇到了一些问题:

getline

输入

然后流出来

作为对字符串的介绍,他们使用了以下代码:

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main()
{
    ifstream in("Scopy.cpp");
    ofstream out("Scopy2.cpp");
    string s;
    while(getline(in, s))
        out<<s<<"\n";
    return 0;
}

正如你可能理解的那样,我对这一切有点不知所措。我将进入第一部分的结尾,他们说我们应该能够完成任务:

编写一个程序,打开一个文件并计算该文件中以空格分隔的单词

编写一个程序,打开一个文本文件,并一次一行显示该文件的内容。显示一行后,程序应等待用户按键,然后再显示文件中的下一行

编写一个程序,使用两个嵌套for循环和模运算符%检测并打印从1到10000的素数。素数是一种自然数,除了自身和一之外,它不能被任何其他数平均整除。显示找到的所有素数

编写一个程序,创建一个包含100个字符串对象的数组。通过让程序打开一个文本文件并在每个字符串中读取一行文件来填充数组,直到填充完数组为止。使用“line:,”格式显示数组,其中是实际行号,您可以使用数组计数器来显示此值,并且是存储的字符串


有人能用外行的语言来解释这些吗?实际上我一直在跟踪NeBoStts的C++教程,这些教程非常有帮助,但我期待着这些介绍的地方,虽然我在教程20中,这就像是他将近10小时的介绍视频中的3小时,这些都是在教程68中介绍的。还有很长一段时间。

第一个建议:我觉得你的老师正在从中汲取灵感和一些代码

《C++思想》,第二版,第1卷,Bruce Eckel

可从此处获取:

我建议你读一读;我发现很好地解释了C的概念++

第二个建议:Cygwin带有一个Cygwin终端图标。使用它来启动bash命令解释器。还要确保安装gcc-g++包来编译代码

来自编译器的错误消息告诉您它不匹配 getline的参数:

$ g++ prova0.cpp -o prova0
prova0.cpp: In function ‘int main()’:
prova0.cpp:17:30: error: no matching function for call to ‘getline(std::ifstream (&)(std::string), std::string&)’
     while (getline (in, line ) )
                              ^
代码中的问题就在这里

 ifstream in (string docName);
在其中定义流 将其与其他代码进行比较

ifstream in("Scopy.cpp");

字串太多。

谢谢你的回答。首先,我很抱歉有这么多问题,我没有意识到在帖子中可以问多少问题是有规则的。第二,这与家庭作业无关,尽管我需要在作业中使用这些概念,所以如果我好像在寻找答案,我很抱歉。关于你的第一个建议,是的,我们正在使用Eckel的书,但是我正努力从一开始就提出问题。关于你的其他建议,我将尝试抨击com
虽然我不知道这是什么,因为我说这是入门课,我几乎没有任何经验,在Cygwin明天的任何这方面,以及删除字符串。最后,看来你对材料很了解,你还有其他的书可以推荐吗?我也在阅读C++加速,但我觉得很多书都假设你对C有核心的理解,所以他们觉得对于我来说没有经验的人来说,有点难掌握,谢谢。非常感谢。Bash是一个命令解释器。它是Unix/Linux下最常用的工具之一,通常是默认工具。由于Cygwin是Windows的Unix环境,任何bash教程都可以。提出单一问题的原因是,在提问之前,你可以检查是否有人曾经问过类似的问题。理想情况下,一次只问一件事。我们有一个很接近的理由认为这个问题太宽泛了,读者可能会投票支持这个保留状态,因为这个问题更容易回答,或者对其他读者更有用,如果它缩小一点的话。
ifstream in("Scopy.cpp");