我在学objective-c基础教程的例子。例子如下:
int main()
{
FILE *wordFile = fopen("D:/word.txt","r");
char word[100];
while (fgets(word,100,wordFile))
{
word[strlen(word) - 1] = '\0';
NSLog(@"%s is %d character long",word,strlen(word));
}
fclose(wordFile);
return 0;
}
word.txt的内容是一行一个字符串,最后一行是字符串"j"可是输出内容却不对“ is 0 character long”
为什么明明有个j,却没读到?
int main()
{
FILE *wordFile = fopen("D:/word.txt","r");
char word[100];
while (fgets(word,100,wordFile))
{
word[strlen(word) - 1] = '\0';
NSLog(@"%s is %d character long",word,strlen(word));
}
fclose(wordFile);
return 0;
}
word.txt的内容是一行一个字符串,最后一行是字符串"j"可是输出内容却不对“ is 0 character long”
为什么明明有个j,却没读到?
解决方案 »
- swipeleft事件触发多次 jquery mobile swipeleft怎么会执行两次 ,大虾们帮帮忙啊
- 谁在uiwebview ios5上用过ckeditor?
- 高分求答案,使用程序如何动态生成生成mobileconfig
- iPhone应用推广码
- iOS 如何分配指定大小内存?
- iphone把sqlite中的数据显示到页面中?
- 关于窗体切换效果
- 在图片上绘图并保存到手机,要用到什么技术
- 设置了ARC,为什么还需要@autoreleasepool
- 物理小游戏 - 《对准了射》
- iphone GPS 除了 didUpdateToLocation在位置移动调用,还有其他方法吗?
- App Store中国优化搜索算法:恢复按名称搜索
http://blog.csdn.net/yang3wei/article/details/7856273
来人呐
不知道LZ说的是不是其他所有字都正常读取到了,但是唯独只有最后一个J没有读到。
如果是这么回事的话,应该是因为
word[strlen(word) - 1] = '\0';这句话。
将最后一个字符改成了0 也就是'\0'
fgets(word,99,wordFile)
因为最后一行没有换行符,所以
word[strlen(word) - 1] = '\0';
这句话把J给删掉了。难道类似情况都要给最后一行加个换行符么?
int main()
{
FILE *wordFile = fopen("D:/word.txt","r");
char word[100] = {0};
while (fgets(word,100,wordFile))
{
// word[strlen(word) - 1] = '\0';
NSLog(@"%s is %d character long",word,strlen(word));
memset(word, 0, 100);
}
fclose(wordFile);
return 0;
}
{
word[strlen(word) - 1] = '\0';
}
----------------------------------
你当我是刚毕业的大学生啊?
想训就训?
----------------------------------
其实很多工作了很多人的人也很欠训的。
这个我认为工作很多年的人都应该知道。
不然用户会以为长度是错的,你说呢?你的答案被我否定了,也不要这么气急败坏对我人身攻击。
难道工作期间讨论问题的时候都是你对,不准别人说吗?
当然你要是没工作,我理解你
现在的问题是,文件里面的每行数据就不是"aaaa",而是"aaaa\n",,还不明白吗?还不明白的话看下ASCII码表......
你以为用户知道那个看不见的'\n'是什么东西吗
难道用户输入"aaaa"出来的长度是5,他会觉得是正常的吗
我都说了 用户用户,我看,不明白的是你吧