一是单行注释:直接在该行需要注释的地方加上"//"就行了。例如:
"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
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)