zoukankan      html  css  js  c++  java
  • 《objective-c基础教程》学习笔记(二)—— for循环的基本应用

      在上一篇博文中,我们介绍了如何开发前期的准备,以及简单的类型输出实例。

      这篇博文,我要记录一个for循环输出的实例。并对此展开,改变成不同的三个小函数。

     1 int main(int argc, const char * argv[])
     2 {
     3     int count = 5;
     4     NSLog(@"The numbers from 1 to %d:", count);
     5     int i;
     6     for (i=1; i<=count; i++)
     7     {
     8         NSLog(@"%d
    ", i);
     9     }
    10     return  (0);
    11 }

      学过C语言的朋友,可以很容易看明白上面的代码。就是先输出一行 “The numbers from 1 to 5:”。然后数字从1到5循环输出。运行后的结果如图:

    《objective-c》学习笔记(二) - 然嗄 - 我就是我,颜色不一样的烟火

      接下来,我们将简单的循环输出数字改成循环输出字符串,并计算每个字符串的长度。修改后的代码如下:

     1 int main(int argc, const char * argv[])
     2 {
     3     const char *words[4]={"about","above","apple","A "Macbook pro""};
     4     int wordCount = 4;
     5     int j;
     6     for (j=0; j< wordCount; j++)
     7     {
     8         NSLog(@"%s is %lu characters long", words[j], strlen(words[j])); //%s 输出字符串
     9     }
    10     return  (0);
    11 }

      在上面的代码中,const关键字表示,我们定义的是个不能被改变的字符串数组。数组中的最后一个字符串中,有‘“’要输出,所有要对其进行转义,用转义字符”“。

    这样,就可以通过for循环依次输出字符串中的元素。%s是输出字符串用的指示符,%lu是输出整形数字用的指示符。strlen()函数是统计字符串长度用的。运行后的结果如图:

      接下来,我们进一步修改代码,使得循环输出的字符串不是从字符串数组中获取,而是从文本文件中获取的。

    首先,我先给大家基本普及下用C语言来对文件读取的基本操作。

    (1)主要的操作有:fopen(打开文件) fclose(关闭文件);

    (2)定义函数 FILE * fopen(const char * path, const char * mode); 

    PS:参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

      mode有下列几种形态字符串:
        r:打开只读文件,该文件必须存在。
        r+:打开可读写的文件,该文件必须存在。
        w:打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
        w+:打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
        a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

      介绍完文件的操作和调用的基本方法。首先,我们在对应文件夹中创建一个txt后缀的文本文件,添加要输出的内容。
     
     
      接着,我们就直接给大家看修改后的代码了:
     1 int main(int argc, const char * argv[])
     2 {
     3     FILE *wordFile = fopen ("/Documents/ch2/ch2/words.txt", "r");
     4     //判断文件是否为空
     5     if(wordFile == NULL)
     6     {
     7         return (0);
     8     }
     9     char word[100];
    10     while (fgets(word, 100, wordFile))
    11     {
    12         //统计的时候,要去掉后面的换行符 
    
    13         word[strlen(word)-1] = '';
    14         //去掉后面的换行符 
    
    15         word[strlen(word)-1] = '';
    16         NSLog(@"%s is %lu characters long", word, strlen(word));
    17     }
    18     fclose(wordFile);
    19     return  (0);
    20 }   
      在代码中,对了一个对文件是否存在的判断。防止在没有文件的时候,继续执行代码,避免不必要的异常。由于文本文件中,有 等换行符号,所以要先替换多余的字符内容。于是,执行后的结果如下图:
     
      好了,例子介绍完了,有哪些不足或者说错的地方希望大家指正,谢谢。接下来的博文,我会开始给大家介绍OC学习中,面向对象编程的东西。希望自己能坚持下去,早日学习好Objective-C开始真正的ios开发之路。
     
  • 相关阅读:
    [thinkphp] 是如何输出一个页面的
    [thinkphp] 获取根目录绝对路径
    onethink 插件模板定位
    win7 安全模式开启声音
    百度贴吧楼层评论地址
    第一天问题
    [php] 解析JSON字符串
    NDK编译时两 .so之间调用问题
    CDN问题积累
    C++模板特化
  • 原文地址:https://www.cnblogs.com/jianglan/p/4122057.html
Copyright © 2011-2022 走看看