我是C编程中的一个菜鸟所以请耐心等待,如果我的方法错误,请纠正我。
我在C中按字符逐字逐句地遇到问题。
如下所示,
显然,我的文件有400个字符,但当我尝试逐个字符地读取它们时,它们最多需要419个索引。我猜他们也包括行尾字符。我不知道如何忽略它们。我尝试使用continue
,但我无法忽略它们。
这是我的档案资料
00000000000000000000
00000000000000000000
00000000000000000000
00555555555555555500
00000000000000000300
00000000000000000300
00000000000000000300
00000000000000000300
00000000000000000300
00000000000000000300
00444444444444444300
00400000000000000000
00400000000000000000
00400000000000000000
00400000000000000000
00400000000000000000
00777777777777777700
00000000000000000000
00000000000000000000
00000000000000000000
这是我的代码:
FILE *pToFile = fopen("toConvert.txt", "r");
char single;
i = end_color;
while ((single = fgetc(pToFile)) != EOF) {
if (single != '\0') {
continue;
} else {
if (single !='0') {
bitmap[i] = 0x66;
} else {
bitmap[i] = 0xff;
}
i++;
}
}
注意:我试图添加"灰色(0x66)"字符为0时的位图颜色和"白色0xff"当一个角色不是零时。换句话说,我要区分0和任何其他角色,而且线条末端角色很难和令人不安。
答案 0 :(得分:0)
您文件中的换行符是' \ n',而' \ 0'指的是数组的空字符。所以用前者替换后者,'!='到' =='跳过换行符的读入。
FILE *pToFile = fopen("toConvert.txt","r");
// single as int (thanks to Weather Vane comment)
int single;
int i = end_color;
while((single = fgetc(pToFile)) != EOF){
if(single == '\n' ){
continue;
}else{
if(single !='0'){
bitmap[i] = 0x66;
}
else{
bitmap[i] = 0xff;
}
i++;
}
}