这可能是一个总的初学者的问题,但我还没有找到适合我的答案.
目前,我正在编写一个程序,用于接收用户输入的类(可以是一个或多个用空格分隔的数字),然后确定该数字是素数,完美还是两者都不是.如果数字是完美的,那么它将显示除数.
到目前为止,我已经写了黄金,完美的代码,并列出了除数.我被困在程序的输入部分.我不知道如何获取由空格分隔的输入,一次一个地通过我的循环.
这是我目前的计划:
cout<<"Enter a number, or numbers separated by a space, between 1 and 1000."<<endl;
cin>>num;
while (divisor<=num)
if(num%divisor==0)
{
cout<<divisor<<endl;
total=total+divisor;
divisor++;
}
else divisor++;
if(total==num*2)
cout<<"The number you entered is perfect!"<<endl;
else cout<<"The number you entered is not perfect!"<<endl;
if(num==2||num==3||num==5||num==7)
cout<<"The number you entered is prime!"<<endl;
else if(num%2==0||num%3==0||num%5==0||num%7==0)
cout<<"The number you entered is not prime!"<<endl;
else cout<<"The number you entered is prime!"<<endl;
return 0;
Run Code Online (Sandbox Code Playgroud)
它有效,但仅适用于单个数字.如果有人能帮助我让它能够读取由空格分隔的多个输入,那么我们将不胜感激.另外,只是旁注,我不知道将输入多少个数字,所以我不能只为每个数字创建一个变量.它将是一个随机数量的数字.
谢谢!
我想创建一个新的空间(也可以在以后删除它),而不必通过标准的misson控件gui.有没有办法以编程方式执行此操作?通过终端命令,applescript或一些可可?
就在我以为我已经看到了Windows路径问题时,我现在遇到的情况只有在使用'/'(正斜杠)作为路径分隔符时才会失败:
C:\temp\tcbugs>mkdir "dir1 with spaces"
C:\temp\tcbugs>echo hi > "dir1 with spaces"\foo.txt
C:\temp\tcbugs>type "dir1 with spaces\foo.txt"
hi
C:\temp\tcbugs>type "dir1 with spaces/foo.txt"
The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
特别有趣的是它似乎是特定于cmd.exe shell而不是在PowerShell中出现(也不是在win32 API中):
PS C:\temp\tcbugs> type 'dir1 with spaces/foo.txt'
hi
Run Code Online (Sandbox Code Playgroud)
另一个兴趣点是使用'cd'更改目录并使用'/'作为cmd.exe的路径分隔符确实有效:
C:\temp\tcbugs>mkdir dir2_no_spaces
C:\temp\tcbugs>cd ./dir2_no_spaces
C:\temp\tcbugs\dir2_no_spaces>cd ..
Run Code Online (Sandbox Code Playgroud)
然而,我无法在网上或MSDN的常用文档中找到任何对此特定问题的引用:
这引出了我的问题:为什么会发生这种情况,是否有一个明确的来源记录了这个怪癖?
更新:
dbenham指出,无论空格是否在目录名称中,问题都存在,因此在标题和问题正文中删除了对它的引用.还添加了一个有效的"cd ./"示例,而其他命令则没有.
$data包含制表符,前导空格和多个空格.我希望用空格替换所有标签.具有一个单独空格的多个空格,并删除前导空格.
事实上,这将改变这个输入数据:
[ asdf asdf asdf asdf ]
Run Code Online (Sandbox Code Playgroud)
进入输出数据:
[asdf asdf asdf asdf]
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我正在尝试使用robocopy但由于目录名称中的空格而无法使其工作.
我想3个目录复制:我的文档,我的音乐和我的图片为"C:\测试备份",但希望最终的结果是
"C:\测试备份\我的文档"
"C:\测试备份\我的音乐'
'C:\ test-backup\My Pictures'
我的命令不起作用:
robocopy C:\Users\Angie C:\test-backup "My Documents" /B /E /R:0 /CREATE /NP /TEE /XJ /LOG+:"CompleteBackupLog.txt"
无论我做什么,都只是没有发生.有人有什么建议或窍门吗?
实际上gnome-terminal显示标签为8个空格,这对于cat文件或查看差异非常烦人,是否有某种方法可以永久地更改它?
如果我打开了几个OS-X Terminal.app窗口,如何将一个终端窗口移动到另一个空间?
我很高兴使用任何脚本或编程语言来实现这一点,但更喜欢AppleScript或调用标准框架.
(注意,这只是移动应用程序的一个窗口而不是所有窗口.)
有一个类trim()可以删除空格,添加/填充怎么样?
注意:" "不是解决方案.
我想在C中的字符串中添加一个可变数量的空格,并希望在我自己实现它之前知道是否有标准的方法.
到现在为止,我用了一些丑陋的方法来做到这一点:
这是我使用的一种方式:
add_spaces(char *dest, int num_of_spaces) {
int i;
for (i = 0 ; i < num_of_spaces ; i++) {
strcat(dest, " ");
}
}
Run Code Online (Sandbox Code Playgroud)
这个性能更好,但看起来也不标准:
add_spaces(char *dest, int num_of_spaces) {
int i;
int len = strlen(dest);
for (i = 0 ; i < num_of_spaces ; i++) {
dest[len + i] = ' ';
}
dest[len + num_of_spaces] = '\0';
}
Run Code Online (Sandbox Code Playgroud)
那么,你有什么标准的解决方案,所以我不重新发明轮子?
当我使用时git config --global <some option> <some value>,Git会在我的相关条目中写入~/.gitconfig,缩进一个标签.由于我~/.gitconfig是版本控制的,我希望它不会一团糟,然后我必须手动进入并用空格替换选项卡.
添加条目时,Git可以被告知自动使用空格~/.gitconfig吗?
(请注意,这不是我在Git中提交的代码中的缩进,而是Git自己的配置文件中的缩进.)