2

コード:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

struct subscriber {
    char phonenumber[20];
    char name[50];
    float amount;
} s;

void addrecords();
void listrecords();
void modifyrecords();
void deleterecords();
void searchrecords();
void payment();

char get;

int main()
{
    int password;
    int phonenumber;
    char choice;

    system("cls");

    printf
    ("\n\n\n\n\n\n\n\n\n**********************************************************************");
    printf("\n\t\t---WELCOME TO THE TELECOM BILLING MANAGEMENT SYSTEM---");
    printf("\n\t\t****************************************************************");

    Sleep(2000);

    getch();

    system("cls");

    while (1) {
        system("cls");
        printf("\n enter\n A : for adding new records.\n L : for list of records");
        printf("\n M : for modifying records.\n P : for payment");
        printf("\n S : for searching records.");
        printf("\n D : for deleting records.\n E : for exit\n");

        choice = getche();
        choice = toupper(choice);

        switch (choice) {
        case 'P':
            payment();
        break;

        case 'A':
            addrecords();
            break;

        case 'L':
            listrecords();
            break;

        case 'M':
            modifyrecords();
            break;

        case 'S':
            searchrecords();
            break;

        case 'D':
            deleterecords();
            break;

        case 'E':
            system("cls");
            printf("\n\n\t\t\t\tTHANK YOU");
            printf("\n\n\n\n\n:\n\tFOR USING OUR SERVICE");
            Sleep(2000);
            exit(0);
            break;

        default:
            system("cls");
            printf("Incorrect Input");
            printf("\nAny key to continue");
            getch();

        }

    }

}

エラー:

proj.c:(.text+0x53): undefined reference to `Sleep'
proj.c:(.text+0x5d): undefined reference to `getch'
proj.c:(.text+0xbb): undefined reference to `getche'
proj.c:(.text+0x17f): undefined reference to `Sleep'
proj.c:(.text+0x1c1): undefined reference to `getch'
/tmp/cc4UYi0H.o: In function `addrecords':
proj.c:(.text+0x244): undefined reference to `getch'
proj.c:(.text+0x340): undefined reference to `getche'
/tmp/cc4UYi0H.o: In function `listrecords':
proj.c:(.text+0x44c): undefined reference to `getch'
/tmp/cc4UYi0H.o: In function `deleterecords':
proj.c:(.text+0x5b2): undefined reference to `getch'
proj.c:(.text+0x632): undefined reference to `getch'
/tmp/cc4UYi0H.o: In function `searchrecords':
proj.c:(.text+0x791): undefined reference to `getch'
/tmp/cc4UYi0H.o: In function `payment':
proj.c:(.text+0xb1f): undefined reference to `getch'
collect2: ld returned 1 exit status

私はここで与えられた解決策を試しました("sleep" への未定義の参照ですが、 <unistd.h> を含めました)が、まだ機能していません。Ubuntu 12.04 で gcc を使用しています。

4

3 に答える 3

5

あなたのコードは Windows オペレーティング システムから来ているようです。Linux では、この関数Sleepは存在しません (これSleep は Windows API の関数です!)。代わりにsleep(from ) を試してください。alk<unistd.h>が言ったように、との引数は異なることに注意してください。Sleepsleep

  • Sleepミリ秒単位で時間がかかります。
  • sleep秒単位で時間がかかります。

同様に、getch関数とcls シェル コマンドは GNU/Linux では機能しません。

于 2012-11-03T17:34:07.300 に答える
0

getch() は標準ライブラリの一部ではありません。これはライブラリの関数であり、使用することを宣言するのを忘れていました

于 2012-11-03T17:37:51.357 に答える
0

getchあなたのコードは、標準の削除および削除に従って移植性がありませんcls

睡眠用sleep(n); //n is number of seconds

詳細については、端末で次のように入力してください。man 3 sleep

Windows から Linux にコードを移植するときの 1 つの提案も

gcc -Wall -Werrorオプションをつけてコンパイルしてみる

于 2012-11-03T17:41:48.297 に答える