#include<stdioh>
int main()
{
char a[1000];
int i=0,n=0;
while(gets(a))
{
n=0;
for(i=0;a[i]!='\0';i++)
{
if(a[i]=='/'&&a[i+1]=='/')
break;
else
{ printf("%c",a[i]);
n++;}
}
if(n!=0)
printf("\n");
}
return 0;
}
看来你只能用文件 *** 作,从头读到尾。然后成对的去掉/和/
但是在删除//的时候就有个判断问题,因为//在程序可能是转义字符的使用,代表/,这个你要考虑下怎么判断了。
最后问一句。。。你做这种程序干嘛。。。不是没事找事干吗。。如果你是想通过对注释的 *** 作来实现:根据不同情况使用不同的代码
段的目的。。似乎多加个if就可以了吧。。。根本没必要对注释动手脚啊。。。
代码如下:#include
<stdioh>
#include
<stdlibh>
#include
<stringh>void
main()
{
FILE
fp
=
fopen("testcpp",
"r");
if(NULL
==
fp)
{
return;
}
fseek(fp,
0L,
SEEK_SET);
char
char_line[1024]
=
{0}; int
totoalline
=
0;
printf("/原始文件/\n");
while(1)
{
fgets(char_line,
1024,
fp);
int
size
=
strlen(char_line);
if(0
>=
size)
{
break;
}
printf("%s",
char_line);
memset(char_line,
0,
1024);
totoalline++;
}
printf("/原始文件结束,共%d行/\n",
totoalline); fseek(fp,
0L,
SEEK_SET);
totoalline
=
0;
FILE
fp_to
=
fopen("resultcpp",
"w");
printf("\n\n/去除冗余后的文件/\n");
while(1)
{
fgets(char_line,
1024,
fp);
int
size
=
strlen(char_line);
if(0
>=
size)
{
break;
}
int
i;
for(i=0;
i<size-1;
i++)
{
if('/'
==
char_line[i]
&&
'/'
==
char_line[i+1])
{
break;
}
}
if(0
!=
i)
{
bool
flag_tab
=
0;
for(int
j=0;
j<i;
j++)
{
if('\t'
!=
char_line[j]
&&
'
'
!=
char_line[j])
{
flag_tab
=
true;
break;
}
}
if(flag_tab)
{
char
ret
=
(char)malloc(sizeof(char)(i+1));
ret[i]
=
0;
memcpy(ret,
char_line,
i);
printf("%s\n",
ret);
//写入到新文件
fwrite(ret,
sizeof(char),
i,
fp_to);
fwrite("\r\n",
sizeof(char),
2,
fp_to);
free(ret);
totoalline++;
}
}
memset(char_line,
0,
1024);
}
printf("/去除冗余后的文件结束,共%d行/\n",
totoalline);
printf("详情查看resutlcpp\n");
fclose(fp);
fclose(fp_to);
}
注释选中行的快捷键是 Ctrl+E,C
删除对选中行的注释快捷键是 Ctrl+E,U
以下是快捷键大全:
Ctrl+E,D ----格式化全部代码
Ctrl+E,F ----格式化选中的代码
CTRL + SHIFT + B生成解决方案
CTRL + F7 生成编译
CTRL + O 打开文件
CTRL + SHIFT + O打开项目CTRL + SHIFT + C显示类视图窗口
F4 显示属性窗口
SHIFT + F4显示项目属性窗口
CTRL + SHIFT + E显示资源视图
F12 转到定义
CTRL + F12转到声明
CTRL + ALT + J对象浏览
CTRL + ALT + F1帮助目录
CTRL + F1 动态帮助
F1 帮助
SHIFT + F1当前窗口帮助
CTRL + ALT + F3帮助-搜索
SHIFT + ALT + ENTER全屏显示
CTRL + -向后定位
CTRL + SHIFT + -向前定位
CTRL + F4关闭文档窗口
CTRL + PAGE DOWN光标定位到窗口上方
CTRL + PAGE UP光标定位到窗口下方
CTRL + F6
CTRL + TAB下一个文档窗口
CTRL + SHIFT + F6
CTRL + SHIFT + TAB上一个文档窗口
ALT + F6下一个面板窗口
CTRL + K+ L取消remark
CTRL + K+ C注释选择的代码
CTRL + K+ U取消对选择代码的注释
CTRL + M+ O折叠代码定义
CTRL + M+ L展开代码定义
CTRL + DELETE删除至词尾
CTRL + BACKSPACE删除至词头
SHIFT + TAB取消制表符
CTRL + U转小写
CTRL + SHIFT + U转大写
CTRL + SHIFT + END选择至文档末尾
CTRL + SHIFT + HOME选择至文档末尾开始
SHIFT + END选择至行尾
SHIFT + HOME选择至行开始处
SHIFT + ALT + END垂直选择到最后尾
SHIFT + ALT + HOME垂直选择到最前面
CTRL + SHIFT + PAGE UP选择至本页前面
CTRL + SHIFT + PAGE DOWN选择至本页后面
CTRL + END文档定位到最后
CTRL + HOME文档定位到最前
CTRL + A全选
CTRL + W选择当前单词
CTRL + G转到
CTRL + K, CTRL + P上一个标签
CTRL + K, CTRL + N下一个标签
ALT + F10调试
CTRL + ALT+ Break停止调试
CTRL + SHIFT + F9 取消所有断点
CTRL + F9允许中断
CTRL + SHIFT + F5调试
F5运行调试
CTRL + F5运行不调试
F10跨过程序执行
F11单步逐句执行
CTRL + J列出成员
CTRL + PAGE DOWN下一个视图
CTRL + B格式粗体
CTRL + SHIFT + T格式
代码快捷键
Ctrl+J / Ctrl+K,L:
列出成员
Ctrl+Shift+
空格键
Ctrl+K,P:
参数信息
Ctrl+K,I:
快速信息
Ctrl+E,C / Ctrl+K,C:
注释选定内容
Ctrl+E,U / Ctrl+K,U:
取消选定注释内容
Ctrl+K,M:
生成方法存根
Ctrl+K,X:
插入代码段
Ctrl+K,S:
插入外侧代码
F12:
转到所调用过程或变量的定义
窗口快捷键:
Ctrl+W,W:
浏览器窗口
Ctrl+W,S:
解决方案管理器
Ctrl+W,C:
类视图
Ctrl+W,E:
错误列表
Ctrl+W,O:
输出视图
Ctrl+W,P:
属性窗口
Ctrl+W,T:
任务列表
Ctrl+W,X:
工具箱
Ctrl+W,B:
书签窗口
Ctrl+W,U:
文档大纲
Ctrl+D,B:
断点窗口
Ctrl+D,I:
即时窗口
Ctrl+Tab:
活动窗体切换
Ctrl+Shift+N:
新建项目
Ctrl+Shift+O:
打开项目
Ctrl+Shift+S:
全部保存
Shift+Alt+C:
新建类
#include <iostreamh>
#include<iomaniph>
#include<stringh>
int min(int w,int c)
{int temp;
if (w<c) temp=w;
else
temp=c;
return temp;
}
int max(int w,int c)
{
int temp;
if (w>c) temp=w;
else
temp=c;
return temp;
}
void knapsack(int v[],int w[],int c,int n,intm) {
int jmax=min(w[n]-1,c);
for(int j=0;j<=jmax;j++)
m[n][j]=0;
for(int jj=w[n];jj<=c;jj++)
m[n][jj]=v[n];
for(int i=n-1;i>1;i--){ jmax=min(w[i]-1,c);
for(int j=0;j<=jmax;j++)
m[i][j]=m[i+1][j];
for(int jj=w[i];jj<=c;jj++)
m[i][jj]=max(m[i+1][jj],m[i+1][jj-w[i]]+v[i]);
}
m[1][c]=m[2][c];
if(c>=w[1])
m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]);
cout<<"最优值:"<<m[1][c]<<endl;
for(int l=2;l<=n;l++)
for(int j=0;j<=c;j++)
{
cout<<m[l][j]<<setw(c-1);
}
cout<<endl;
cout<<""<<endl;
}
int traceback(int m,int w[],int c,int n,int x[]) {
cout<<"得到的一组最优解如下:"<<endl;
for(int i=1;i<n;i++)
if(m[i][c]==m[i+1][c]) x[i]=0;
else {x[i]=1;
c-=w[i];}
x[n]=(m[n][c])1:0;
for(int y=1;y<=n;y++)
{
cout<<setw(5)<<x[y];
}
return x[n];
}
void main()
{
int n,c;
int m;
cout<<"&&&&&&&&&&&&&&&&&&&&&欢迎使用0-1背包问题程序&&&&&&&&&&&&&&&&&&&"<<endl;
cout<<"请输入物品个数和重量上限:";
cin>>n>>c;
int v=new int[n+1];
cout<<"Pls input the property (v[i]):"<<endl;
for(int i=1;i<=n;i++)
cin>>v[i];
int w=new int[n+1];
cout<<"Pls input the weight (w[i]):"<<endl;
for(int j=1;j<=n;j++)
cin>>w[j];
int x=new int[n+1];
m=new int[n+1]; for(int p=0;p<n+1;p++)
{
m[p]=new int[c+1];
}
knapsack(v,w,c,n,m);
traceback(m,w,c,n,x);
}
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI
<# :
cls
@echo off
rem 将一个html文件内的指定字符串内容删除
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IOFile]::ReadAllText('%~f0',[TextEncoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$htmlfile="D:\xxx\indexhtml";
$self=get-item -liter $args[0];
$path=$selfDirectoryFullName;
$enc=New-Object SystemTextUTF8Encoding $False;
$text=[IOFile]::ReadAllText($htmlfile, $enc);
$text=$textreplace('<base href="/">', '');
[IOFile]::WriteAllText($htmlfile, $text, $enc);
评论列表(0条)