簡単にアクセスプログラムセグメンテーションエラー、Cファイル処理プログラム最初にすべてのLinuxを使用して
。私は最初にユーザーにサインアップするプログラムを作ろうとしています。彼はアカウントを持っていない場合にログインして、アカウントの詳細を入力してログインするログイン画面に進みます。ウェブサイトへのアクセスを容易にするなどのオプションが与えられるユーザーが1を入力した場合のように、彼はf.bに、2はquoraの方向に向けられます。私は正常にログインフェーズにプログラムをコード化することに成功しましたが、私はそれを1つの関数、すなわちmain()で行ったので、もし私が特定のタスクを実行するために別々の関数を持っていればいいと思いました。今回は別々の関数でコーディングしましたが、fopen()を使用してFILEを開こうとすると、今回はセグメンテーションエラーが発生しています。また、コンソールコマンドを使用してブラウザでウェブサイトを開く方法を教えてください。私たちは窓のように(www.facebook.comのように始める)。ここにコードがあります。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct user_data {
char name[50];
unsigned long password;
};
struct user_data new_user; // Will hold the data of new
struct user_data data_ver; // Will hold the data read
void sign_up(void);
void sign_in(void);
int main(void) {
beginning: // Beginning label in case of invalid input
printf("\t\t\t\t WELCOME TO EASY ACCESS APPLICATION");
printf("\n\n\nIf you have an account press 1.\n\nPress 2 for sign up.");
char user_choice; // Wil hold the
// user_choice i.e whether he wants to sign up/sign in
user_choice = getchar();
if (user_choice == '1') {
sign_in(); // In case of 1 goto sign in page
}
else if (user_choice == '2') {
sign_up(); // Opening file);
// In case of 2 goto sign up page
}
else {
printf("Invalid input. Try again.\n\n");
puts("Press any key to continue...");
getchar();
system("clear");
goto beginning;
}
return 0;
}
void sign_up(void) {
FILE *data = fopen("data.txt", "a");
if (data == NULL) {
printf("Unable to open file.");
scanf("%c");
system("clear");
}
system("clear");
printf("\t\t----------------------------\n"
"\t\t| |\n"
"\t\t| SIGN UP PAGE |\n"
"\t\t| |\n"
"\t\t----------------------------");
printf("\n\nName:");
scanf("%c"); // Dummy scanf
gets(new_user.name); // Getting name into the struct
printf("\nPassword.");
scanf("%lu", &new_user.password); // Getting pass into the struct
fprintf(data, "%s %lu\n", new_user.name, new_user.password); //Feeding data into FILE
system("clear");
printf("\n\nSign up complete. :) ");
printf("\n\nYou will now be directed to the sign in page. ");
printf("\nPress any key to contine...");
scanf("%c");
system("clear");
fclose(data);
}
void sign_in(void) {
}
FILEを開いているsign_up関数の最初の行にエラーが表示されます。
この 'scanf("%c ");はあなたの考えではありません。どこでscanfに読み込みcharを保存させますか? –
@SeekAddoまあ、それはダミーのscanf()です。私はgethc()関数として使用しています。 – Muneeb
@SeekAdooそして、私がその場所を指定していないので、読まれたcharをどこにも格納しません(私が間違っていない場合)。 – Muneeb