小编Mau*_*rus的帖子

在ISO C++中,从main返回0的原因是什么?

我知道如果没有给出return语句,那么C++标准return 0会在最后插入main(); 但是,我经常看到最近编写的,符合标准的C++代码,它在结尾显式返回0 main().出于什么原因,有人想要显式返回0,如果它是由编译器自动完成的?

c++

3
推荐指数
2
解决办法
481
查看次数

有没有办法将std :: string传递给接受char*并更改其内容的函数?

我正在尝试重新编程,特别是控制台游戏.我听说诅咒对此有好处,所以我找到了一个curses教程,我正在进入.我正在使用C++,当然我想利用std :: string,但函数getstr()只接受char*.有没有办法将字符串作为char*传递,或者我将不得不放弃使用C++字符串?

c++ string

2
推荐指数
2
解决办法
1548
查看次数

逐行读取文件的问题

我正在尝试完成练习以编写一个程序,该程序接受以下命令行参数:输入文件,输出文件和未指定数量的单词.程序是逐行读取输入文件的内容,找到给定哪个行包含该单词的每个单词,并将带有行号的行打印到输出文件.这是我的代码:

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;

int main(int argc, char* argv[]) {
    if (argc < 4) {
        cerr << "Error #1: not enough arguments provided\n";
        return 1;
    }
    ifstream in(argv[1]);
    if (!in.is_open()) {
        cerr << "Error #2: input file could not be opened\n";
        return 2;
    }
    ofstream out(argv[2]);
    if (!out.is_open()) {
        cerr << "Error #3: output file could not be opened\n";
        return 3;
    }
    ostringstream oss;
    for (int i = 3; i < argc; …
Run Code Online (Sandbox Code Playgroud)

c++ file-io fstream

1
推荐指数
1
解决办法
817
查看次数

为什么这个for循环不执行?

我正在为一个练习编写一个程序,该程序将从文件中读取数据并将其格式化为可读.到目前为止,我有一些代码可以将标题与其下的数据分开.这里是:

int main() {
    ifstream in("records.txt");
    ofstream out("formatted_records.txt");
    vector<string> temp;
    vector<string> headers;
    for (int i = 0; getline(in,temp[i]); ++i) {
        static int k = -1;
        if (str_isalpha(temp[i])) {
            headers[++k] = temp[i];
            temp.erase(temp.begin() + i);
        }
        else {
            temp[i] += "," + headers[k];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

(str_isalpha()只是一个适用isalpha()于字符串中每个字符的函数.)现在,此程序中的for循环不执行,我无法弄清楚原因.有人知道吗?

编辑:按照建议,我改为

string line;
for (int i = 0; getline(in,line); ++i) {
    temp.push_back(line);
Run Code Online (Sandbox Code Playgroud)

仍然完全跳过for循环.

c++ for-loop getline

0
推荐指数
1
解决办法
294
查看次数

标签 统计

c++ ×4

file-io ×1

for-loop ×1

fstream ×1

getline ×1

string ×1