你好家伙请帮我理解一些东西!我有一个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