0

我是编程新手。我有一个 tcms 软件,可以将所有数据导出到.txt文件中。我想.txt在 c++ 控制台上输出文件(与文件中的完全相同.txt)但我能做的就是这个。谁能帮我?这是我的代码:

#include <iostream> 
#include <iomanip>
#include <iomanip>
#include <fstream>
#include <string>
#include <stdlib.h>

using namespace std;

int main() {
    string x;
    ifstream inFile;

    inFile.open("TEXT1.txt");
    if (!inFile) {
        cout << "Unable to open file";
        exit(1); // terminate with error
    }

    while (inFile >> x) {
        cout << x << endl ;
    }

    inFile.close();
}

TEXT1.txt(和我想要的输出)是

WLC013   SIN LEI CHADMIN DEPA      0     0.00     0.00    0.00    0.00     2.00
WLC008   NAI SOO CHADMIN DEPA      0     0.00     0.00    0.00    0.00     2.00
WLC017   SYLVESTER ADMIN DEPA      0     0.00     0.00    0.00    0.00     2.00
WLC004   CHANG KUEIADMIN DEPA      0     0.00     0.00    0.00    0.00     2.00

但我得到这样的输出

WLC013    
SIN LEI CHADMIN DEPA         
0      
0.00      
0.00    
0.00    
0.00      
2.00      
WLC008    
NAI SOO CHADMIN DEPA        
...

是否可以编辑文本文件并为每一列添加标题?谢谢!

4

2 回答 2

2

您正在逐字阅读文件,您需要逐行阅读以获得所需的输出。

while (getline(inFile,x)) {
cout << x << endl ;
}

要添加标题/标题或更好的格式,请参阅setw

在控制台上输出它,然后您可以简单地使用输出重定向>到文件。

假设您的来源名称是test.cpp

./test > new_file.txt(Linux)

或者

test.exe > new_file.txt(视窗)

这是一种最简单的方法。也可以有其他方法。

于 2013-09-03T03:02:56.637 回答
0
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>

int main()
{
char directory[_MAX_PATH + 1];
char filename[_MAX_PATH + 1];

std::cout << "Please provide a directory Path: ";
std::cin.getline(directory, _MAX_PATH);

std::cout << "\nPlease provide a name for file: ";
std::cin.getline(filename, _MAX_PATH);

strcat(directory, filename);

std::ofstream file_out(directory);

if (!file_out) {
    std::cout << "Could not open.";
    return -1;
}

    std::cout << directory << "Was created\n";
    for (int i = 0; i <= 5; ++i) {
        std::cout << "(Press ENTER to EXIT): Please enter a line of text you 
        would like placed, in the document: ";
        char nest[100], *p;
        std::cin.getline(nest, _MAX_PATH);
        p = strtok(nest, "\n|\t|\r");

        while (p != nullptr) {
            p = strtok(nullptr, " ");
            std::cout << " The line (";
            file_out << nest << std::endl;
            std::cout << " )Line was successfully added.\n";
        }

    }
    file_out.close();
    return 0;
 }
于 2017-08-23T18:17:36.570 回答