《objective-c基础教程》学习笔记(二)—— for循环的基本应用
在上一篇博文中,我们介绍了如何开发前期的准备,以及简单的类型输出实例。
这篇博文,我要记录一个for循环输出的实例。并对此展开,改变成不同的三个小函数。
int main(int argc, const char * argv[])
{
int count = ;
NSLog(@"The numbers from 1 to %d:", count);
int i;
for (i=; i<=count; i++)
{
NSLog(@"%d\n", i);
}
return ();
}
学过C语言的朋友,可以很容易看明白上面的代码。就是先输出一行 “The numbers from 1 to 5:”。然后数字从1到5循环输出。运行后的结果如图:

接下来,我们将简单的循环输出数字改成循环输出字符串,并计算每个字符串的长度。修改后的代码如下:
int main(int argc, const char * argv[])
{
const char *words[]={"about","above","apple","A \"Macbook pro\""};
int wordCount = ;
int j;
for (j=; j< wordCount; j++)
{
NSLog(@"%s is %lu characters long", words[j], strlen(words[j])); //%s 输出字符串
}
return ();
}
在上面的代码中,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:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

int main(int argc, const char * argv[])
{
FILE *wordFile = fopen ("/Documents/ch2/ch2/words.txt", "r");
//判断文件是否为空
if(wordFile == NULL)
{
return ();
}
char word[];
while (fgets(word, , wordFile))
{
//统计的时候,要去掉后面的换行符 \n
word[strlen(word)-] = '\0';
//去掉后面的换行符 \r
word[strlen(word)-] = '\0';
NSLog(@"%s is %lu characters long", word, strlen(word));
}
fclose(wordFile);
return ();
}

《objective-c基础教程》学习笔记(二)—— for循环的基本应用的更多相关文章
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- 【学习笔记】Python基础教程学习笔记
教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")----- ...
- Unity基础知识学习笔记二
1,object Instantiate(object original,Vector3 position,Quaternion rotation) 克隆原始物体,并返回克隆物体. ...
- 匿名内部类--毕向东java基础教程学习笔记
1.匿名内部类其实就是内部类的简写形式. 2.定义匿名内部类的前提: 该内部类必须继承一个类,或者实现一个接口. 3.匿名内部类的格式:new 父类名或接口名(){定义子类内容:} 4.其实匿名内部类 ...
- 内部类--毕向东Java基础教程学习笔记
内部类的访问规则 1. 内部类可以直接访问外部类的成员,包括私有. 之所以可以直接访问外部类的成员,是因为内部类中持有外部类的引用,格式:外部类名.this 2.外部类要访问内部类,必须建立内部类对象 ...
- 异常处理——毕向东Java基础教程学习笔记
1.异常:就是程序运行过程中出现的不正常情况. 异常的由来:问题本身也是日常生活中一个具体的事物,也可以通过java类的形式进行描述,并封装成对象. 其实 ...
- jfinal框架教程-学习笔记(二)
上一节介绍了jfinal框架的简单搭建,这节通过一个小例子了解jfinal的结构和特点 先上图 1.建数据库(我用的是oracle数据库,其他的相对也差不多) -- Create table crea ...
- 《嵌入式Linux基础教程学习笔记一》
常用书目下载地址:http://www.cnblogs.com/pengdonglin137/p/3688029.html 第二章 1.进程上下文和中断上下文(Page20) 当应用程序执行系统调用, ...
- Objective-C基础教程学习笔记(附录)从Java转向Objective-C
Java接口与Objective- C正式协议类似,因为它们都需要实现一组方法.Java具有抽象类,但Objective-C没有.Java具有类变量,但在Objective-C中, 可以使用文件范围内 ...
- Python基础教程学习笔记:第二章 列表和元组
1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串 ...
随机推荐
- 实例化和设置一个优秀的php对象
类是用于生成对象的代码模板,对象可以被说成是类的"实例" class ShopProduct{ public $title = 'default product'; // 属性也称 ...
- 利用java8对设计模式的重构
java8中提供的很多新特性可以用来重构传统设计模式中的写法,下面是一些示例: 一.策略模式 上图是策略模式的类图,假设我们现在要保存订单,OrderService接口定义要做什么,而NoSqlSav ...
- AngularJS中Scope间通讯Demo
在AngularJS中,每一个controller都有对应的Scope,而Scope间有时候需要通讯.比如有如下的一个controller嵌套: <body ng-controller=&quo ...
- MX4_ADB
一.Ubuntu环境1. 建立或修改文件 ~/.android/adb_usb.ini,在文件开头或末尾添加一行,内容是0x2a45. 2. 建立或修改文件 /etc/udev/rules.d/51- ...
- 阿里开源项目 druid 相关资料汇总
项目发起人访谈:http://www.iteye.com/magazines/90 github主页:https://github.com/alibaba/druid druid 项目,我想我能用很短 ...
- error LNK1104:无法打开文件"lua51.lib"
今天学习C++与Lua通信,遇到了问题:fatal error LNK1104: 无法打开文件“lua51.lib” 开发环境: VS2012 cocos版本:cocos2d-x-3.0 已经按书&l ...
- [Algorithm] Calculate Pow(x,n) using recursion
Asking you to implement the Math.pow method The navie implemenation can be: // O(N) const pow1 = (x, ...
- 【SqlServer】解析SqlServer中的事务
目录结构: contents structure [+] 事务是什么 控制事务 数据并发访问产生的影响 事务的隔离级别 锁 NOLOCK.HOLDLOCK.UPDLOCK 死锁分析 在这篇Blog中, ...
- Djnogo Web开发学习笔记(2)
安 装 截止目前,https://www.djangoproject.com/download/提供的最新的Django的下载版本为1.6.4. Install Django You’ve got ...
- Eclipse Unhandled event loop exception GC overhead limit exceeded
修改Eclipse的配置文件: