? 發問時間: 電腦與網際網路程式設計 · 1 0 年前

程式有些問題不懂

void getdata (char* inbuffer) {

char a;

int i;

bzero (inbuffer, 255);

printf (\"Please enter your data:\\n\");

for (i = 0; i != -1; i++) {

if (a = getchar() == \'\\n\') {

i = -2; // terminate for loop

}

else {

inbuffer[i] = a;

}

}

}

------------------------------------------------------------------------

請問一下上面的bzero (inbuffer, 255);是什麼意思,還有if (a = getchar() == \'\\n\')這也不太懂,希望大大指點^^

2 個解答

評分
  • ?
    Lv 5
    1 0 年前
    最佳解答

    請問一下上面的bzero (inbuffer, 255);是什麼意思,還有if (a = getchar() == '\n')這也不太懂,希望大大指點^^

    bzero(inbuffer,255);這個是呼叫一個函式為bzero,並帶入inbuffer,255兩個參數進去

    因為你沒貼出bzero函式的內容,所以我猜想這個函式應該是指定一個記憶體空間為255的陣列位址給inbuffer指標使用

    if (a = getchar() == '\n'){}

    此行是說明

    假如(字元變數a=輸入一個字元 == Enter)

    就是說輸入一個字元變數

    若這個字元變數是Enter的話

    則執行{ }內的內容

    參考資料: 自己
  • 1 0 年前

    定義於 strings.h 中

    void bzero(void *s, size_t n);

    目的是將pointer s中的開頭 n byte填為 0 (數值0, 非ASCII Code 0)

    這個函式在早期常用, 但是現在已經deprecated, 使用memset替代

    2006-03-16 09:36:19 補充:

    002 中的bzero解釋根本是錯的.....

    參考資料: Linux Programmer's Manual
還有問題?馬上發問,尋求解答。