-2
我試圖讀取一個隨機文件(在mac-xcode上)並確定文檔中字母k的實例。然後打印該數字作爲輸出文件。我的問題是outfile沒有被寫入,並且nums_k返回爲0.我不確定ifstream是否工作不正確,或者ofstream需要建立不同的文件名。這是我的源代碼。ifstream ofstream on mac
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream infile("Users/bryanmichaelnorris/documents/extra credit assignment.docx");
string line;
int numks = 0;
while (getline(infile,line)) {
int x = 0;
for (std::string::iterator it=line.begin(); it!=line.end(); ++it) {
if (line[x] == 'k') {
numks++;
}
x++;
}
}
infile.close();
ofstream outfile("number of k's.docx");
outfile << "There are " << numks << " K's in the file." << endl;
outfile.close();
return 0;
}
'「Users/...」',我會先在該名稱的*開頭*處加上一個'/'開始。如果你想驗證你的輸入文件是否正確打開,它肯定不會損害*測試它,而不是假設世界上所有的東西都是正確的。您可能還想研究輸出文件的寫入位置,因爲在Xcode下運行時的當前工作目錄通常與人們所認爲的完全不同(但可以在模式編輯器中更改它)。 – WhozCraig
@WhozCraig幾乎肯定碰到了頭部 – trojanfoe
不要使用'.docx'擴展名來處理不是MS-Word文檔的文件...如果您確實需要擴展名,也許'.txt'是一個好多了。如果輸入文件也是MS-Word文件,那麼我不會用這種方法計算字母'k',因爲您可能會將'k'用於除文本本身之外的其他內容。 –