簡體   English   中英

在VIsual C ++中使用fstream

[英]Using fstream in VIsual C++

我正在嘗試使用fstream,但是在嘗試從Visual Studio 2013中打開文件時遇到問題。在Visual Studio中,我啟用了兩個資源,可用於項目titiled input1.txt和input2.txt中。 如果使用文件資源管理器從Debug文件夾中直接運行應用程序,則可以使用ifles。 如果嘗試使用ctrl從Visual Studio中運行它,則找不到任何文件。 我相信我的代碼是正確的,但是我不確定要對該項目進行哪些更改才能使其正確運行。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

const bool VERBOSE(true);

int main(){

ifstream input;
ofstream output;

string inFileName;
string outFileName;
string tempString;

// Get input file name into a string
cout << "Input file name: " << flush;
cin >> inFileName;

if (VERBOSE)
{
    cout << "Input file name is " << inFileName << endl;
}

// Convert filenames to C strings and use stream.open()
input.open(inFileName.c_str());
if (input.fail())
{
    cout << "File " << inFileName << " cannot be opened" << endl;
    return -1;
}

// Get output file name into a string
cout << "Output file name: " << flush;
cin >> outFileName;

if (VERBOSE)
{
    cout << "Output file name is " << outFileName << endl;
}

// Convert filenames to C strings and use stream.open()
// When opening output file, it will create the file if it
// does not exist, and will clobber it if it does.
output.open(outFileName.c_str());
if (output.fail())
{
    cout << "File " << outFileName << " cannot be opened" << endl;
    return -2;
}

// While there is more to the input file, get a word 
//   and copy it to the output file on its own line.
while (!input.eof())
{
    input >> tempString;
    if (VERBOSE)
    {
        cout << " Length is " << tempString.length() << " for " << flush;
    }

    if (tempString.length() > 0)
    {
        if (VERBOSE)
        {
            cout << tempString << endl;
        }
        output << tempString << endl;
    }
    else
    {
        if (VERBOSE)
        {
            cout << "No more input" << endl;
        }
    }

    // This is needed to keep the last non-whitespace word
    // read in from being printed twice if the file ends in
    // whitespace, including a newline.
    tempString.clear();
}
cout << endl;

return 0;

}

cin時,請指定文件的完整路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM