2016-12-04 6 views
-3

大丈夫ですので、2つのエラーが発生しています。 C++登録とサインインプログラムのヘルプが必要

  • 関数のgetline [(ユーザ名+ "TXT" 行)における]

    1. 無効なポインタの付加は、プロトタイプを持つべきです。

    ここにコードがあります。私は登録/サインアップ/サインインフォームを作成しています。後でもう少し機能を追加する予定です(例: ****パスワードの形式とパスワードの制限。今のところ、私はここで立ち往生し、進める方法を知らない。また、私は学校:)))))))ので、ターボC + +を使用することを余儀なくされている。 MacOSX用の良いコンパイラもお勧めします。 ありがとう!

    #include<iostream.h> 
        #include<fstream.h> 
        #include<conio.h> 
        #include<stdio.h> 
        #include<string.h> 
    
        void register_user(); 
        void login_user(); 
        void main_menu(); 
    
        int IsLoggedIn() 
        { 
         char username[20],password[20],un[20],pw[20]; 
         cout<<"Enter Username: ";gets(username); 
         cout<<"Enter Password: ";gets(password); 
    
         ifstream read(username + ".txt"); 
         getline(un,read); 
         getline(pw,read); 
    
         if(un==username && pw==password) 
         { 
          return 1; 
         } 
         else 
         { 
          return 0; 
         } 
        } 
    
        void main() 
        { 
         main_menu(); 
        } 
    
        void main_menu() 
        { 
         int choice; 
         cout<<"1. Register\n2. Login\nYour Choice: "; cin>>choice; 
         switch(choice) 
         { 
          case 1: register_user(); break; 
          case 2: login_user(); break; 
          default: break; 
         } 
        } 
    
        void register_user() 
        { 
         char username[20], password1[20],password2[20]; 
         cout<<"Enter Username: ";gets(username); 
         rev1:cout<<"Enter Password: ";gets(password1); 
         cout<<"Enter Password again: ";gets(password2); 
         while (password1!=password2) 
         { 
          goto rev1; 
         } 
         ofstream file; 
         file.open(username + ".txt"); 
         file<<username<<endl<<password1; 
         file.close(); 
        } 
    
        void login_user() 
        { 
         int chk=IsLoggedIn(); 
         if(chk==1) 
         { 
          cout<<"Log in successfull!\n"; 
         } 
         else 
         { 
          cout<<"Log in unsucessfull!\n"; 
         } 
        } 
    
  • +0

    'char []'ではなく 'std :: string'を使います。また、 '#include 'は標準のC++ではありません。 Turbo C++を使用していますか? –

    +0

    ええ、私はそれを上に述べました:P –

    +0

    あなたの質問を[編集]して[mcve]を提供してください。 –

    答えて

    1

    Cスタイルの文字列には演算子 '+'を使用できません。

    strcat()またはsnprintfを使用する必要があります。

    また、文字配列に読み込む場合は、fscanfまたはfreadまたはfgetsのいずれかを使用します。

    Cスタイルの文字列(文字配列)に演算子==を使用することはできません。strcmpを使用してください。 operator ==は、指し示されたテキストではなく、ポインタの値を比較します。

    Cスタイルの文字列を使用する場合は、str*()ファミリの機能を確認することを強くお勧めします。

    関連する問題