Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.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字符串的一部分转换为双精度_C++_Arrays_File_Double - Fatal编程技术网

C++ 将C字符串的一部分转换为双精度

C++ 将C字符串的一部分转换为双精度,c++,arrays,file,double,C++,Arrays,File,Double,我一次读取一个大数据文件到一个char[]行中。我需要对char[]中的几个字段求和 假设给我一个初始化:char输入[4270]我想找到一个号码,以下是我知道的: 它从索引1234开始 它的长度将不超过10个字符 其格式为“567.89” 如果小于10chars,则数字将左对齐并填充空格 在提取这个索引和另一个索引处的数字后,我需要将它们的总和转换回一个char[],以便将输出写回一个文件 如何完成此往返行程?您可以使用将char[]转换为任何合法的double(与长度无关) 例如,假设我

我一次读取一个大数据文件到一个
char[]
行中。我需要对
char[]
中的几个字段求和

假设给我一个初始化:
char输入[4270]我想找到一个号码,以下是我知道的:

  • 它从索引1234开始
  • 它的长度将不超过10个字符
  • 其格式为“567.89”
  • 如果小于10
    char
    s,则数字将左对齐并填充空格
在提取这个索引和另一个索引处的数字后,我需要将它们的总和转换回一个
char[]
,以便将输出写回一个文件


如何完成此往返行程?

您可以使用将
char[]
转换为任何合法的
double
(与长度无关)

例如,假设我得到了输入:

char cstring[] = "blah 13.42 blah blah";
如果我知道要转换的数字的索引(这里是
5
),我可以按如下方式使用:

const double num = stod(cstring + 5);
[]

顺便说一句,如果您提供的索引指向实际数字前面的空白字符
stod
,则仍然有效

要返回到
char[]
,并且您不介意从
printf
%f
格式打印的结果,那么我建议只使用和复制。例如:

const string backToChars = to_string(num + 13.0);

copy(backToChars.cbegin(), backToChars.cend(), cstring + 5);

[]

那么,问题是什么?如何将字符数组的一部分转换为double,然后再转换回来?@lefeal将文本转换为double值?这可以通过函数实现。你的问题是基本的编程技巧,真的。您似乎无法将一个简单的任务分解为3个甚至更简单的子任务:查找编号、查找编号末尾、将中间的部分传递给正确的函数。你找出了第一个子任务,但是在C++代码中也没能做到这一点。