11
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

void vowel(fstream a){
    char ch;
    int ctr = 0;
    while(!a.eof()){
        a.get(ch);
        if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U'){
            cout << ch;
            ctr++;
        }
    }
    cout << "Number of Vowels: " << ctr;
}

main(){
    fstream a;
    a.open("temp.txt", ios::in);
    vowel(a);
return 0;
}

この単純なプログラムでは、ファイル temp.txt 内のキャップ母音の数をカウントしようとしています。ただし、次のエラーが表示されます。

関数 fstream::fstream(fstream&) で ios::ios(ios &) にアクセスできません

代わりに、関数自体でファイルを開きます。なぜそうなのですか?どうもありがとう

注意:

関数パラメーターを介して fstream (具体的には ofstream) を使用するにはどうすればよいですか?

ここでは、私が試みている方法で動作するはずです。

リック

4

3 に答える 3

2

これを試して。ファイルを送信する代わりに、一列に並んだ母音を数えます。

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
int vowels=0;
void vowel(string a){
    char ch;
    int ctr = 0;
int temp=0;
    for(temp=0,temp<a.length();temp++){
        ch=a.at(temp);
        if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U'){
            cout << ch;
            ctr++;
        }
    }
    vowels+=ctr;
}

main(){
    fstream a;
    a.open("temp.txt", ios::in);

string temp;
while(getline(a,temp))
{
vowel(temp);
function2(temp);
function3(temp);


... so on for more then one functions.

}        
vowel(a);
    return 0;
    }

ファイルを渡したい場合は、上記の回答を使用してください(参照によりfstreamを渡します)。

于 2013-01-24T14:38:34.613 に答える