2016-09-17 29 views
0

最終的には、学生の詳細(学生ID#、名前、年齢)を入力して表示する作業コードを作成することができました。これらの入力をテキストファイルに書き込んだり、テキストファイルから読み込んだりたいと思います。私は、任意の助けをして下さい感謝します。ファイルへの入力の書き込みとC++でのファイルの読み込み

#include <stdio.h> 
#include <iostream> 
#include <cstdlib> 
#include <cstdio> 
#include <fstream> 

using namespace std; 

struct student 

{ 
    int sno, sage; 
    char sname[100]; 
}; 

    int main(int e, char* argv[]) 
{ 

    struct student s[e]; 
    int i; 

    ofstream outfile; 
    outfile.open("info.txt"); 

printf("How many entries are you making?: "); 
scanf("%d",&e); 

printf(" \n"); 


printf("Please enter Student Information:\n"); 

     for(i=0;i<e;++i) 
{ 
    s[i].sno=i+1; 

    printf("\nEnter Information for student %d\n",s[i]); 
    printf("================================\n"); 


    cout<<"\nEnter (4 digits) student ID No: "; 
    cin>>s[i].sno; 

    cout<<"\nEnter student's name: "; 
    cin>>s[i].sname; 


    cout<<"\nAge of student: "; 
    cin>>s[i].sage; 

    printf("\n"); 

//If i do this, I get only first set of data 
outfile <<s[i].sno<<" "<<s[i].sname<<" "<<s[i].sage<<endl; 

/*I am trying to get data into txt file using the loop below but it looks odd and it collects some of the first set of data, and completes it like this: 1212 kop 23 
1627953384 1629646589*/ 

    /*for(i=0;i<e;++i) 
    { 
     outfile <<s[i].sno<<" "<<s[i].sname<<" "<<s[i].sage<<endl; 
    }*/ 

    outfile.close(); 
} 

printf("Displaying information of student(s):\n"); 
printf("==================================\n"); 

for(i=0;i<e;++i) 
{ 
    printf("\nInformation for Student %d:\n",i+1); 

    cout<<"\nStudent ID:"<<s[i].sno; 

    cout<<"\nStudent name: "<<s[i].sname; 

    cout<<"\nAge of student: "<<s[i].sage; 

    printf("\n\n"); 

} 

return 0; 

} 
+0

「ストリームを交差させる」べきではありません。 'std :: cout'か' printf'のどちらかを使います。同様に、 'std :: cin'または' fscanf'。 –

+0

'main'関数には2つのパラメータがあります。 2つのパラメータは、1)パラメータ数と2)パラメータ文字列の配列です。正当な 'int main(int e)'宣言はありません。 –

+0

私は学習している本を焼くか、またはトルコ式典の訪問をやめたり、ビデオの視聴をやめるのをお勧めします。ここに問題が多すぎます。 –

答えて

0

私は、ファイルへの書き込みを行う簡単なプログラムで始まるお勧め:上記のプログラムを実行した後

#include <fstream> 
#include <iostream> 
#include <cstdlib> 

int main(void) 
{ 
    std::ofstream output_file("text.txt"); 
    std::cout << "Writing to output file.\n"; 
    output_file << "This is my text.\n"; 
    output_file.flush(); 
    std::cout << "Finished writing to file.\n"; 
    output_file.close(); 

    std::cout << "Paused. Press Enter to continue.\n"; 
    std::cin.ignore(100000, '\n'); 
    return EXIT_SUCCESS; 
} 

、テキストファイルが含まれていることを確認する必要があります正しいテキスト。

次に、ユーザーに対してプロンプトを表示し、入力を取得するなど、他のコードを追加することができます。

0

あなたはファイルの読み書き方法がわからないと思います。だからこそあなたは問題を抱えています。人々が一般的に使う2つの方法があります。これらの方法をよく理解するには、この2つのサンプルチュートリアルを参照してください。 - c methods - 、これはwstudent1.txtとwstudent2 2つのファイルを生成します実行した後

Given Input file - student.txt. //first line No. of input 
2 
1234 manish  34 
4321 mukesh  43 

Code 
#include <iostream> 
#include <cstdio> 
#include <fstream> 

using namespace std; 

struct student 
{ 
int sno, sage; 
char sname[50]; 
}; 

//Read data using C Method 
void ReadAndWriteCMethod(){ 
    student s[100]; 


    FILE* f; 
    f = fopen("student.txt","r"); 
    int N; 
    fscanf(f,"%d",&N); 

    **//Reading from file** 
    for(int i=0; i<N; i++){ 
     fscanf(f,"%d %s %d",&s[i].sno, &s[i].sname, &s[i].sage); 
    } 
    fclose(f); 

    **//Writing over file** 
    f = fopen("wstudent1.txt","w+"); 
    for(int i=0; i<N; i++){ 
     cout<<s[i].sno<<" "<<s[i].sname<<" "<<s[i].sage<<endl; 
     fprintf(f,"%d %s %d\n",s[i].sno,s[i].sname,s[i].sage); 
    } 
    fclose(f); 
} 

//Reading and writing using C++ 
void ReadAndWriteCPlusPlusMethod(){ 
    student s[100]; 

    **// Reading data** 
    std::ifstream fin("student.txt"); 

    char s2[100]; 
    int N; fin>>N; 
    for(int i=0; i<N; i++){ 
    fin>>s[i].sno>>s[i].sname>>s[i].sage; 
    cout<<s[i].sno<<" "<<s[i].sname<<" "<<s[i].sage<<endl; 
    } 
    fin.close(); 

    **//Writing data** 
    std::ofstream fout("wstudent2.txt"); 
    for(int i=0; i<N; i++){ 
    fout<<s[i].sno<<" "<<s[i].sname<<" "<<s[i].sage<<endl; 
    }  
    fout.close(); 
} 

int main() 
{ 
    ReadAndWriteCMethod(); 
    ReadAndWriteCPlusPlusMethod(); 
} 

からc++ methods

これは、私は両方の方法を使用してファイルを読んでから書き込みに変更したあなたのコードです。 txtファイル。

+0

C++で考えると、私はまだコードを動かすことができません。私はもう少し苦労するつもりだと思う。私はちょうどテキストファイルにデータを書きたいと思う...私はもうデータを読んでみたくない。 – McNeal

関連する問題