你好傢伙請幫我理解一些東西!我有一個txt文件,我讀不同的值。我成功地做到了,但我也有一個ASCII碼,即。 KS98B2從txt文件讀取char是錯的
我想讀取它並將其存儲在一個值中。你能看看我的代碼嗎?單詞「KS98B2」應該存儲在變量「名稱」中。所以我把它作爲char來聲明。你同意嗎? 在「asc」函數裏面有一個putchar,並且打印正確,我檢查了一下,我收到了KS98B2。
但是,ASC的printf函數裏面給出的值:84122658 及主要的printf裏面給出的值:24
是的,我把%d printf和名稱是一個字符,但它是如何可能變量是不一樣的?我怎樣才能使它工作?請幫幫我 !
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
FILE *file;
char ch;
int asc(char eow, bool *eof) {
\t int var = 0;
\t
\t while((ch=fgetc(file))!=EOF) {
\t \t putchar(ch);
\t \t
\t \t if ((ch >= 'A') && (ch <= 'Z')) {
\t \t \t var <<= 4;
\t \t \t var += (ch - 'A' + 65);
\t \t }
\t \t else if ((ch >= '0') && (ch <= '9')) {
\t \t \t var <<= 4;
\t \t \t var += (ch - '0');
\t \t } else if (ch == eow) {
\t \t \t
\t \t \t return var;
\t \t } else {
\t \t \t puts("Incorrect syntax.\n");
\t \t }
\t }
\t putchar('\n');
\t printf("Var inside asc %d\n", var);
}
int main() {
\t char name;
\t bool eof = false;
\t \t
\t if ((file = fopen("messages.txt", "r")) == NULL) {
\t \t puts("WRONG FILE\n");
\t \t return 1;
\t }
\t while(!feof(file)) {
\t \t
\t \t name= asc('\n', &eof);
\t
\t \t printf("Var main: %d\n", name);
\t }
\t fclose(file);
\t return 0;
}
我想你會發現fgetc獲得一個int類型而不是char。 – 2015-02-07 21:58:21
顯示「Var inside asc ...」時,返回值無效。 – BLUEPIXY 2015-02-07 22:17:30
謝謝大家的意見。所以大衛,你如何建議我將這個單詞的價值存儲在一個變量中並返回? – 2015-02-07 22:51:01