Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个空向量并逐字符读取文件。(C++)_C++ - Fatal编程技术网

创建一个空向量并逐字符读取文件。(C++)

创建一个空向量并逐字符读取文件。(C++),c++,C++,我需要创建一个空向量,然后打开并逐字符读取文件,当它看到一个数字时,它将该字符放回流中,并将相应公司的金额作为数字读取。然后,我需要使用名称和金额构建一个公司对象 到目前为止我所拥有的 int main(){ //Function string readCompanyInfo(double money); //Handles the file ofstream company("companymoney.txt"); std::vector<int> v; in

我需要创建一个空向量,然后打开并逐字符读取文件,当它看到一个数字时,它将该字符放回流中,并将相应公司的金额作为数字读取。然后,我需要使用名称和金额构建一个公司对象

到目前为止我所拥有的

int main(){

//Function
string readCompanyInfo(double money);

//Handles the file
ofstream company("companymoney.txt");

    std::vector<int> v;
    int sum (0);

    for (int i=1;i<=10;i++) v.push_back(i);

    while (!v.empty())          {sum += v.back(); v.pop_back();}


    std::cout << sum << '\n';

    return 0;
这就是函数,打开文件,然后是一个空文件。我如何阅读该文件,并从中获取我正在寻找的结果?
谢谢你们的帮助,我是新来的,很明显,如果我能看到一些正确的东西,我将来会有一些事情要做,谢谢大家。

有比将一个字符读入缓冲区更优雅、更有效的方法。一般的经验法则是将一行文本读入字符串,然后使用std::istringstream解析字符串。在块模式下读取文件最有效

逐字逐句 如果必须逐个字符进行操作并存储到向量中,请在读取之前分配一个大向量。这将减少调整std::vector大小的机会,这意味着分配更大的内存块并将原始值复制到新的vector区域

以最少的指令将尽可能多的数据读入向量。阅读背面的插入器和std::vector

接下来,使用一个指针或索引,在向量中搜索数字。 复制指针/索引。 如果可能,减小指针/索引,并验证它是否指向美元符号

其中一个指标/指标是前瞻

块处理 最有效的方法是处理数据组或数据块。读取块,搜索块

您没有说明数据在输入文件中的组织方式

如果数据被标签或逗号分隔,则搜索Web和堆栈溢出,以将C++读取文件逗号分隔或C++读取文件标签分隔。p> 我假设您正在处理一个文本文件。 大多数文本文件每行有一条记录。 在本例中,将一段文本从一行读入std::string变量。 然后,可以在变量中搜索“$”并使用std::istringstream将值从文本表示转换为数字双精度

编辑1:

正则表达式
如果您精通正则表达式,则可以使用正则表达式搜索字符串或字符向量

使用std::getline将一行文本读入std::字符串。使用字符串std::istringstream解析或提取数字。非常感谢您的帮助。。文本文件每行包含1家公司及其帐户余额。请编辑您的问题并粘贴输入文件的一些文本,而不是图片,而是从文本编辑器复制。