小编khf*_*kek的帖子

C++ 不会从 .txt 文件中读取科学计数法数据

我正在编写一个程序,该程序从文本文件中读取数组,该文本文件既有普通整数,也有科学计数法形式的多个数字,其形式为:#.#####E##。以下是输入 .txt 文件的一些示例行:

       21   -1    0    0  501  502  0.00000000000E+00  0.00000000000E+00  0.17700026409E+03  0.17700026409E+03  0.00000000000E+00 0. -1.
       21   -1    0    0  502  503  0.00000000000E+00  0.00000000000E+00 -0.45779372796E+03  0.45779372796E+03  0.00000000000E+00 0.  1.
        6    1    1    2  501    0 -0.13244216743E+03 -0.16326397666E+03 -0.47746002227E+02  0.27641406353E+03  0.17300000000E+03 0. -1.
       -6    1    1    2    0  503  0.13244216743E+03  0.16326397666E+03 -0.23304746164E+03  0.35837992852E+03  0.17300000000E+03 0.  1.
Run Code Online (Sandbox Code Playgroud)

这是我的程序,它只是读取文本文件并将其放入数组(或更具体地说,向量的向量)中:

vector <float> vec; //define vector for final table for histogram.
    string lines;
    vector<vector<float> > data; //define data "array" (vector of vectors)

    ifstream infile("final.txt"); //read …
Run Code Online (Sandbox Code Playgroud)

c++ arrays notation

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

简单的if循环不能正常工作

我有一个非常简单的if循环,它接受一个名为data的数组(向量向量),读取EACH行的第0个元素(即data [i] [0]元素),并输出特定于THAT的第5个元素行IFF它满足条件,即第一个元素等于整数pid(用户在代码中先前定义.)如果行不以该元素开头,我希望它不输出任何内容.

这是我的循环代码:

for(int i = 0; i < data.size(); i++)  {
    if(data[i][0] = pid) {
        cout << data[i][5] << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行程序时,它输出每行的第5个元素,而不仅仅是以pid开头的那个元素.AKA,c ++似乎完全无视我的if语句.

有没有人对此有答案?

先感谢您!

c++ if-statement

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

C++没有可行的从字符串到const char的转换*

我正在使用C++(使用CERN的ROOT框架),我对字符串有一点问题.我正在尝试使用代码中较早的用户定义的字符串来标记直方图轴.以下是代码的相关部分:

string xlabel;

...
cout << "Enter x-axis label:" << endl;
getline(cin >> ws, xlabel);

...

hist->GetXaxis()->SetTitle(xlabel);
Run Code Online (Sandbox Code Playgroud)

最后一行只是ROOT使用的语法(通常这里的xlabel将在引号中,你可以键入你想要的标签,但我试图输入前面在代码中定义的字符串.)

无论如何,当我编译它时,我收到以下错误:

error: no viable conversion from 'string'
      (aka 'basic_string<char>') to 'const char *'
        hist->GetXaxis()->SetTitle(xlabel);
                                   ^~~~~~
Run Code Online (Sandbox Code Playgroud)

我曾尝试将xlabel重新定义为const char*,但它也不喜欢它.有没有人对如何定义这个字符串有任何建议?

提前致谢!

c++ string char

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

标签 统计

c++ ×3

arrays ×1

char ×1

if-statement ×1

notation ×1

string ×1