Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.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++_File Io - Fatal编程技术网

C++ 如何将矢量中的数字打印到文件中?

C++ 如何将矢量中的数字打印到文件中?,c++,file-io,C++,File Io,//这是到目前为止我的代码 //在这里,我只是简单地接受一个充满数字的文件,包括十进制数字 ifstream infile; infile.open("Numbers.txt"); if (!infile) { cout << "Unable to open the file" << endl; return; } ifstream-infle; infle.open(“Numbers.txt”); 如果(!infle){ cout i&&infle>>

//这是到目前为止我的代码

//在这里,我只是简单地接受一个充满数字的文件,包括十进制数字

ifstream infile;
infile.open("Numbers.txt");
if (!infile) {
    cout << "Unable to open the file" << endl;
    return;
}
ifstream-infle;
infle.open(“Numbers.txt”);
如果(!infle){
cout i&&infle>>d){
数。推回(i);
d数字。推回(d);
}
infle.close();
}
/* 现在正在尝试打印或将这些数字放入两个不同的文件中,将整数放入integer.txt,将double放入DOUBLES.txt */

流整数输出的
(“integer.txt”);
向量:迭代器ii;
对于(ii=iNumbers.begin();ii!=iNumbers.end();++ii)
{
如果(ii=int{
}

integerOut您可以使用标准算法
std::copy

#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>

//...

std::ofstream integerOut( "integer.txt" );

if ( integerOut ) 
{
   std::copy( iNumbers.begin(), iNumbers.end(), 
              std::ostream_iterator<int>( integerOut, " " ) );
}  


std::ofstream doubleOut( "double.txt" );

if ( doubleOut ) 
{
   std::copy( dNumbers.begin(), dNumbers.end(), 
              std::ostream_iterator<double>( doubleOut, " " ) );
}  
#include <iostream>
#include <fstream>

//...

std::ofstream integerOut( "integer.txt" );

for ( int x : iNumbers )
{
    if ( !( integerOut << x << ' ' ) ) break;
}


std::ofstream doubleOut( "double.txt" );

for ( double x : dNumbers )
{
    if ( !( doubleOut << x << ' ' ) ) break;
}
std::string value;

while ( infile >> value )
{
   if ( value.find( '.' ) != std::string::npos )
   {
      double d = std::stod( value );
      dNumbers.push_back( d );
   }
   else
   {
      int i = std::stoi( value );
      iNumbers.push_back( i );
   }
}
如果您不知道文件中的下一个数字是整数还是双精度,可以通过数字中是否存在句点来区分它们

#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>

//...

std::ofstream integerOut( "integer.txt" );

if ( integerOut ) 
{
   std::copy( iNumbers.begin(), iNumbers.end(), 
              std::ostream_iterator<int>( integerOut, " " ) );
}  


std::ofstream doubleOut( "double.txt" );

if ( doubleOut ) 
{
   std::copy( dNumbers.begin(), dNumbers.end(), 
              std::ostream_iterator<double>( doubleOut, " " ) );
}  
#include <iostream>
#include <fstream>

//...

std::ofstream integerOut( "integer.txt" );

for ( int x : iNumbers )
{
    if ( !( integerOut << x << ' ' ) ) break;
}


std::ofstream doubleOut( "double.txt" );

for ( double x : dNumbers )
{
    if ( !( doubleOut << x << ' ' ) ) break;
}
std::string value;

while ( infile >> value )
{
   if ( value.find( '.' ) != std::string::npos )
   {
      double d = std::stod( value );
      dNumbers.push_back( d );
   }
   else
   {
      int i = std::stoi( value );
      iNumbers.push_back( i );
   }
}

问题是…?@herohuyongtao我的代码只给了我integer.txt文件的前两个数字和double.txt文件的最后一个小数。我试图找出我做错了什么,所以我可以简单地将整数打印到integer vector,然后输出到integer.txt,并对double执行同样的操作。进一步解释:我有一个名为Numbers.txt的文件,其中的数字包含1 5 9.4 3 4 6.3 5 2.2我正在获取整数并尝试将它们放入integer.txt文件,我正在获取double并将它们放入double.txt文件。但是在我的代码中,当我想要接收1 5时,我接收整数1 2 9 3 4 6 5 23 4 5 onlyLets只是说Numbers.txt文件中的整数和double是随机的,没有任何类型的模式,我怎么才能只将整数放入一个向量,只将double放入一个单独的向量,然后将integers向量中的整数打印到integers.txt文件中,对double也一样?@anonymous我已经更新了我的帖子。你在这个问题上帮了我很多,我想知道你是否也能帮我解决这个问题:@anonymous你的问题被搁置。我无法回答。