C语言文件和Python文件的格式有哪些异同呢?
    在C语言文件中,开头通常都有标准库文件#include<stdlib>和标准输入输出文件#include<stdio>,而Python自带这些功能,没必要import额外的库。
    C语言对括号也情有独钟。圆括号( )表示条件,其结果是一个真值。花括号{ }表示进程,里面是待执行的代码块。而Python仅仅用  :  就表示了逻辑判断,用缩进表示执行,相比之下更简洁美观。
 

 

C语言的函数和Python函数不仅写法不一样,用法也有巨大差异,怎么改?
    C语言的输入有scanf ,getchar,而在Python中几乎找不到这样的函数。
 不过Python的输入函数 input 在C中有很好的替代品——gets( ),它们之间可以转换。
    在输出函数上,Python和C保持了高度一致,Python的 print 可以完美涵盖C的 printf 。因此,输出函数不是问题。
    

 

   总的来说,如果不涉及库的使用,仅仅在算法上使用Python,那么Py文件是很容易转成Cpp的。编程语言本就大同小异,而其中的算法思想又始终如一。基于这个原理。我编写了一个可以将Py文件转成Cpp的程序。

  笔者对Python更加熟悉,而且Python作为一门简洁高效的语言更适合个人开发,因此我选用Python来写这个程序。

  Python读取双文件十分简单。用readline()逐行读取,之所以不用read()是为了方便逐行操作,而不用readlines()是考虑到当文件太大时,内存会塞不下导致电脑崩溃。

1 with open("Py.txt","r",encoding="utf-8") as f , \
2     open("toC.txt","a") as c :
3     l=f.readline()
4     while l:
5         pass
6         l=f.readline()

之后就要解决问题了

句末

Python换行就表示句末了,分号 ; 可加可不加。但是C语言句末必须有 ; 因此Py文件中每次检测到换行" \n "就要在此前添加 ; 

1 if l[-1] == "\n":
2     l=l[:-1]+";\n"

 

注释

Python用 # 表示注释,而C用 //

1 #注释
2 if "#"in l:
3     if l[0]=="#":
4         l=l.replace("#","//")
5     else:
6         l=l.replace("#","; //")

大括号

Python一般4个空格为一个缩进,缩进增加表示进入执行进程。对应的,C语言要用 { 表示进程。因此靠缩进就可以智能地添加花括号

 1 s=""
 2 #大括号
 3 if count>space:
 4     #缩进增加 {
 5     l=(count-1)*"    "+"{\n"+l
 6     space=count
 7 else:
 8     #缩进减少 }
 9     while space-count:
10         s+=(space-1)*"    "+"}\n"
11         space-=1
12     l=s+l

当然Py和Cpp的区别远不止这些。翻译工作也没这么简单。怎么解决请看后文。

posted on 2022-03-22 12:53  亦知亦行  阅读(26)  评论(0)    收藏  举报