怎样消除c语言中注释

怎样消除c语言中注释,第1张

一般来讲有两种:

一是单行注释:直接在该行需要注释的地方加上"//"就行了。例如:

"int a,b//这是一个注释行"。那么,"//"后面的部分"这是一个注释行"就被注释掉了,不起作用,但是"//"前面的“int a,b"不受影响。

另外还有一种是多行同时注释:

/*

int a,b

int c,d

*/

其中"/*"和"*/"起限定范围的作用,该范围内的语句都会被注释掉,将不再起作用。当然,多行注释也是可以用来单行注释的

#include <stdio.h>

int main()

{

FILE *fp,*fp1

char str[99]=""

int i=0

fp=fopen("test.c","r") //要打开的源文件

fp1=fopen("new.c","w") //另存为

while(fgets(str,99,fp)!=NULL)

{

for(i=0i<99i++)

if(str[i]=='/'&&str[i-1]=='/'){str[i-1]='\n'str[i]='\0'break}

fputs(str,fp1)

}

fcloseall()

return 0

} 如果有/* */块注释的话,用这个

#include <stdio.h>

#include <string.h>

int main()

{

    FILE *fp,*fp1

    char str[99]="",str1[99]=""

    int i,j,no=0

    fp=fopen("test.c","r") //要打开的源文件

    fp1=fopen("new.c","w") //另存为

    while(fgets(str,99,fp)!=NULL)

    {

        for(i=0i<99i++)

{

if(str[i]=='/'&&str[i-1]=='/')

{str[i-1]='\n'str[i]='\0'}

if(str[i]=='*'&&str[i-1]=='/')

{str[i-1]='\0'no=1fputs(str,fp1)}

if(str[i]=='/'&&str[i-1]=='*')

{

for(j=0j<98-ij++){str[j]=str[i+j+1]}

str[j]='\0'

no=0

}

}

        if(no==0)fputs(str,fp1)

    }

    fcloseall()

    return 0

}

这个程序可以实现对于注释//---的一行内容进行删除。

但对于/*

*/还不能实现。

程序中有两点错误:

1,字符'\'要写成转义符

2,while条件不正确

对程序修改如下:

#include

#include

#include

#include

void

main()

{

char

ch,ch3

char

ch1

char

ch2

FILE

*r

FILE

*w

r=fopen("f:\\a.txt","r")

w=fopen("f:\\b.txt","w")

ch1=fgetc(r)

while(ch1!=EOF)

{

ch2=fgetc(r)

if(ch1=='\\'&&ch2=='\\')

//这里------

{

do

{

ch3=fgetc(r)

}while(ch3!='\n')

//这里------

}

else

{

fputc(ch1,w)

fputc(ch2,w)

}

ch=fgetc(r)

ch1=ch

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11470295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存