iphone学习笔记(实例解析)

int main(int argc,const char * argv[])
{
    char *strList[3]={"abc","hello","love"};
    int i;
    for(i=0;i<3;i++)
    {
         NSLog(@"The %s charctor length is %d\n",strList[i],strlen(strList[i]));
}
     return(0);
}
通过这个实例,可以看出字符串数组定义。
char *strList[3]={"abc","hello","love"};  如果字符串中包含引号则需要使用转义符 \   如在hello的前后加上引号的格式 为  /"hello/"与字符串格式  %s
 
读取文件中字符串,输出字符长度的实例
int main(int argc,const char * argv[])
{
     FILE *file=fopen("/user/peter/Desktop/Lenrn Objective-c Samples/word.txt","r");
     char strWorld[100];
      while(fgets(strWorld,100,file))
{
    strWorld[strlen(strWorld)-1]='\0';
    NSLog(@"The txt %s charactor length is %d",strWorld,strlen(strWorld));

}
   fclose(file);
    return (0);
}
本例中,学习到如何读取txt文件中的类容。首先用fopen函数打开文件,并读取文件内容。第一个参数为文件路径,第二个参数 r 表示只读方式打开。然后存到file中。
接着用fgets函数读取file中的一行文本,fgets(strWorld,100,file)
其中需要注意的一个地方是因为读取的是txt文本文件,因此如果直接用strlen返回的长度会比实际多一位,因此需在字符串末尾加 ‘\0’  
当读取完毕之后关闭  fclose(file);
在这里我被这小小的 * 号给弄迷糊了,不知道为什么定义的时候有的时候要加上*号,有的定义又不加,如例子中 file的时候需要加,int,char 的时候就不加。后来论坛中的朋友提供了如下解释:
int char 是基本类型的变量 不需要指针来管理
FILE NSString 等类型都属于引用类型 也就是对象 需要用*来修饰和调用
感觉还是有些似懂非懂,先记下来在实际使用中取体会吧。如果有朋友看到我的学习笔记,希望能抽出时间来给我指点一二,不甚感激。
第三个例子:
int main(int argc,const char * argv[])
{
     if(argc==1)
     {
         NSLog(@"you need to provide a file name");
}
     FILE *wordFile=fopen(argv[1],"r");
     char word[100];
     while(fgets(word,100,wordFile))
{
     word[strlen(word)-1]='\0';
     NSLog(@"%s is %d characters long",word,strlen(word));
}
fclose(wordFile);
return(0);
}
可以看出,这个例子是第二个例子的加强版微笑,不过同样的有几个地方不是很明白。
if(argc==1)这一句是什么意思,为什么是这样判断。在这里我已经找到答案了,所以在此更新一下。网上查到的都比较简洁,都只是提到了,argc代表启动参数等等。在这里详细说下。argc参数保存的是启动参数的个数。因为默认程序名会用作启动参数传递,所以argc>=1 ,如果用户不提供文件路径,那么argc的值为1,如代码中所示,将不会读取文件,并弹出提示信息。下面加上在xcode中如何提供启动参数的方法。(此处与书中所写的方法不一样,我用它上面写的方法找不到指定的文件,开始认为是路径中存在中文的原因,后来将中文字符全都去掉。然后又几番修改,将我的实际解决方法贴出来)

  
  
  1. 在xcode文件列表中展开Executables,并双击程序名。
  2. 单击Arguments下的加号,并输入启动参数(在此添加文件名称)
  3. 在General标签,将working directory改到project director的checkbox按钮上。 
添加完成之后,就会和之前的例子得到一样的结果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值