这程序为什么不能循环

#include
#include
using namespace std;
int main(){
int i;
string s;
char a[i];
for(i=0;a[i]=='.';i++){
cin>>a[i];
s=a[i];
}
}

a[i]=='.';
这个条件一旦不满足就不执行了,应该是
a[i]!='.';

for循环小括号里第一个和第二个分号之间的条件有问题,另外想问一下你想要实现什么图片说明

首先不知道你想实现的功能是什么,你这个程序的循环条件是a[i]=='.' 。但是你的a[i]是全局变量,而初始值为为空,所以条件永远不可能满足,所以无法
执行循环体。

a[i]是一个局部变量,在C++或者C里面并没有给你初始化这个值,所以你并不知道这个是什么,肯定不等于“,”,然后就是,你的for循环的成立条件是a[i]=",",所以循环不能开始

我笑了,循环之前先看一下,预编译时候这个程序就不会通过,何谈运行,更何谈循环。不知道问题者是否调用监视查程序运行到了哪一步。
0.哇!!!大哥哥!!!!您这个include是闹着玩的吗?什么头文件都不包含,写的时候竟然不报错。include include
1.int i ,这个'i'是变量,变量无法用来给后面的char a[i]申请空间,所以这里已经错了,也就是后面的都是错的。要么用const,要么动态申请空间。
2.不过你这个循环,,,,算了,不做评价。 循环的判断条件‘a[i]=='.'',就是说,在满足这个条件下循环才会运行,但是你在循环体cin>>a[i];这个真的有点好笑。你的输入会改变判断条件,所以除非你想要每次输入一个'.',程序才能进行循环(前提是你把错误一改正了),但是,即使能进行循环,也只是得到一串'.'这显然是无意义的。
3's'是一个串类型,但是循环里面的s=a[i];只能每次为这个串赋值,也就是它的长度始终是一,如果你想要的是一个串‘.'就改为s+=a[i[;
4.虽然主函数(main)不能被调用,可是他也需要一个返回值来填补’寂寞空虚‘之感啊!加上一个return 0;

for里是循环条件,不是结束条件,,,