【发布时间】:2018-10-05 06:49:46
【问题描述】:
我周一刚开始介绍 C++ 课程,感觉完全超出了我的深度。首先,他们告诉我安装 Crimson 编辑器和 Cygwin(编译文件):
Crimson 编辑器不允许我做任何事情(所有选项似乎完全变灰)。
Cygwin 的相似之处在于我可以从批处理文件中打开命令提示符(按照提供给班级的教程文件的指示),但我无法从那里做任何事情。我已经请求帮助但尚未收到回复,所以我决定看看我是否可以在网上找到帮助。
在遇到这些问题后,有人建议我使用其他人在线提供的代码块,我的代码块一直运行良好。我遇到的第一个问题是,在编译/调试文件时,代码块是否会成为一个问题(他们已经声明,对于每个分配,每个提交都应该包含一个 makefile、一个 makedebug,并将根据以下标准进行标记:
评分方案
您将根据以下标准进行评分:
程序编译没有错误 20%
程序执行正确 20%
C++ 程序正确性和风格 20%
程序文档 20%
测试计划 20%
总计 100%
不幸的是,他们还没有向我们介绍很多这些概念(我希望他们在我即将结束第一部分时尽快介绍它们(他们说过我们应该能够完成第一个任务,即编写 4 个程序))。
这将我们带到下一个问题。我正在尝试使用while(getline()) 进行练习,但遇到了一些问题(同样,我对编程语言的经验几乎为零,并决定参加这门课程,因为它应该是一门入门课程。有趣的是,“虽然”是稍后将在课程中介绍的概念,但幸运的是,我从在线视频中对此有了非常基本的了解)。以下是我尝试运行的代码:
#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()
ifstream in()
and ofstream out()
作为对字符串的介绍,他们使用了代码:
#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;
}
和
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream in("FillString.cpp");
string s, line;
while(getline(in,line))
s+= line + "\n";
cout<< s;
}
正如您可能理解的那样,我对这一切有点不知所措。我即将结束第一部分,他们说我们应该能够完成作业:
编写一个程序来打开一个文件并计算该文件中由空格分隔的单词。
编写一个程序,打开一个(文本)文件,并一次一行地显示该文件的内容。显示一行后,程序应等待用户按下该键,然后再显示文件中的下一行。
编写一个程序,使用两个嵌套的 for 循环和取模运算符 (%) 来检测和打印从 1 到 10,000 的素数。 (素数是自然数,不能被除自身和一以外的任何其他数整除)。显示所有找到的素数。
编写一个程序,创建一个包含 100 个字符串对象的数组。通过让您的程序打开一个(文本)文件并将文件的一行读入每个字符串来填充数组,直到您填充了数组。使用“line #:”格式显示数组,其中 # 是实际的行号(您可以使用数组计数器来获取该值)并且是存储的字符串。
有人可以用外行的话来解释这些吗? (我实际上一直在关注 NewBoston 的 C++ 教程,这非常有帮助,但我期待着这些教程的介绍,虽然我在教程 20 上,这就像他近 10 小时的介绍视频中的 3 小时一样,这些介绍在第 68 节教程......还有一段时间)。
【问题讨论】:
-
理想情况下,请以一次询问一件事为目标。我们在这里有一个“过于宽泛”的密切原因,读者可能会投票支持该保留状态,因为如果将问题缩小一点,该问题将更容易回答或对其他读者更有用。
标签: cygwin codeblocks ifstream getline ofstream