自己寫的一個很簡單的小程式,我想要做到判斷條件進行重命名,但是我想要的是比如:變數i%64==0的情況下,執行重命名指令,newname要用(i/64+1)這個值,每次這個點都會報錯,自己自學不是很清楚所有康康有沒有哪位大佬解答一下。以下是部分相關代碼:
#include <iostream>
#include <fstream>
#include <io.h>
#include <stdio.h>
using namespace std;
int main()
{
int a,b,y,z,m,n,p,i;
double x;
fstream ftxt;
cout<<"請輸入基數"<<endl;
cin>>a;
cout<<"請輸入高低音部"<<endl;
cin>>m;
if(m==1)
{
begin1:
cout<<"請輸入你需要的倍數"<<endl;
cin>>x;
cout<<"請輸入音符位置"<<endl;
cin>>n;
if(n==-2)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=55;
if(p==2)
z=57;
goto begin3;
}
else if(n==-1)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=59;
if(p==2)
z=60;
goto begin3;
}
else if(n==1)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=62;
if (p==2)
z=64;
goto begin3;
}
else if(n==2)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=65;
if(p==2)
z=67;
goto begin3;
}
else if(n==3)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=69;
if(p==2)
z=71;
goto begin3;
}
else if(n==4)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=72;
if(p==2)
z=74;
goto begin3;
}
else if(n==5)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=76;
if(p==2)
z=77;
goto begin3;
}
else if(n==6)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=79;
if(p==2)
z=81;
goto begin3;
}
else if(n==7)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=83;
if(p==2)
z=84;
goto begin3;
}
else if(n==8)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=86;
if(p==2)
z=88;
goto begin3;
}
else if(n==9)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=89;
if(p==2)
z=91;
goto begin3;
}
else if(n==10)
{
cout<<"輸入位置"<<endl;
cin>>p;
if(p==1)
z=93;
if(p==2)
z=95;
goto begin3;
}
begin3:
y=x*8;
b=y+a;
ftxt.open("MC.txt",ios::out|ios::app);
ftxt<<"execute @e[score_1_min="<<b<<",score_1="<<b<<"] ~ ~ ~ function 掉落鋼琴:"<<z<<"c"<<endl;
ftxt.close();
i=b-8;
/*該位置進行重命名的判斷和執行*/
getchar();
a=b;
goto begin1;
}
uj5u.com熱心網友回復:
這個 else if 配合 goto,很是秀啊。。。考慮下 switch 陳述句??begin1這個塊,可以換成回圈陳述句。。
我沒有看到你重命名的那行代碼在哪里。。
uj5u.com熱心網友回復:
哈哈哈其實確實是比較麻煩但是我做的是一個根據音符位置輸出陳述句的樂譜轉換,那個音符的變化比較多做回圈陳述句有局限性,而且本人學的時候switch那節課沒好好聽哈哈哈所以這個陳述句不熟練。
然后重命名的陳述句我就沒寫,我就是想問一下怎么寫,我現在倒是會了,但是是麻煩的
if(i%64==0&&i>0)
{
/* prompt for file to rename and new name */
cout<<"請輸入原名稱"<<endl;
cin>>oldname;
cout<<"請輸入新名稱"<<endl;
cin>>newname;
rename(oldname, newname);
if(rename(oldname, newname)==-1)
goto begin1;
else if(rename(oldname, newname)==0)
cout<<"重命名失敗"<<endl;
}
這個雖然做到了我要的改名但是需要手動輸入名稱,而不是我想要的這個“i%64+1”算出來的值直接作為新的檔案名稱,所以先用這個代替一下
uj5u.com熱心網友回復:
可以用std::stringstring filename = "MC" + to_string(i%64+1) + ".txt";
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12533.html
標籤:基礎類
下一篇:c語言
