Swift3.0 控制台输入输出

一个基本事实,scanf是在stdio.h里面的,这是一个标准的c函数。
这已经和objective-c没有什么关系了,其实objc里面也没有scanf这个函数。唯一不同的只是objc比swift更容易和c结合。

swift从诞生开始的形象就是“去c化”,objc一直沾染着c,而又离现代编程语言太远。

其实我从来没有在Cocoa的环境下用过这个函数。
Cocoa的定位(Swift和oc一样也是纯粹为Cocoa服务的)是让你写GUI,也就是图形用户界面

上面说的都是语言层面的问题,我认为这个问题其实是不存在的。下面是解决方案

1、使用NSFileHandle的fileHandleWithStandardInput
这个是完全和objc一模一样的用法

2、写一个bridging header
其实在swift里面用c也不是那么的困难,你只需要一个.h


最后附上一段控制台输入的代码,用Swift3.0写的

let input = String(data: FileHandle.standardInput.availableData,encoding: String.Encoding.utf8)
if let str = input {
    let index = str.index(str.endIndex,offsetBy: -1) //去掉最后一个换行符
    print(str.substring(to: index))
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...