さて、C言語の基礎を写経したので、ここから少しずつC言語を使って緩くOSを学んでいきたい
まずmac, windowsにもあるログイン処理から
■要求定義
– ユーザ名に一致したパスワードを入力し、一致していたらログイン
– 不一致の場合は、パスワードを再入力してくださいと表示
#include <stdio.h> #define User "hpscript" #define Password "asdf" int main(){ char s[5]; while(1){ printf("%sさん、パスワードを入力してください。\n", User); gets(s); if(strcmp(s, Password)==0){ printf("ログイン成功しました。\n"); break; } else { printf("%sさん、パスワードを入力してください。\n", s); } } return 0; }
$ ./dev
hpscriptさん、パスワードを入力してください。
aaaa
aaaaさん、パスワードを入力してください。
hpscriptさん、パスワードを入力してください。
asdf
ログイン成功しました。
文字列の比較は、strcmpを使用する
if(s == Password){} としても、trueにならない。
while(1)で無限ループにして、一致した場合はbreakでループから抜ける。
なるほど、型の宣言するところとか、色々頭使うなー