作者airawesu ()
看板C_and_CPP
标题[问题] 无法利用全域变数来控制server丢资料
时间Wed Dec 7 22:36:34 2016
开发平台(Platform): (Ex: Win10, Linux, ...)
win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
visual studio2015
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
server利用while(1)无限循环client丢回来的值来判断要丢什麽东西回去
此外我也叫了另一个thread来写入全域变数a
在while(1)里面加入if a>1的判断来控制要不要丢a的值给client
但是发现那个if判断似乎完全没有执行
因为我有用cout来做是否有做到该程序的判断
不过连cout都没有做
喂入的资料(Input):
thread thread1(keyin);
void keyin()
{
while (1)
{
cout << "please key in value of a:";
cin >> a;
cout << "value of a is " << a << "\n";
Sleep(5000);
}
}
if (*ptr >= 1)
{
strcpy(sendData, "a的值是 ");
char buffer[1];
sprintf(buffer, "%d", a);
strcat_s(sendData, buffer);
strcat_s(sendData, " 的唷\n");
send(current_client, sendData, sizeof(sendData), 0);
cout << sendData << "\n";
printf("\n我做完了发送a的值的流程\n");
cleanBuf();
cleanSendData();
}
预期的正确结果(Expected Output):
将if (*ptr >= 1)该做的程序完全做完
错误结果(Wrong Output):
没执行
程式码(Code):(请善用置底文网页, 记得排版)
http://ideone.com/ytAAcP
补充说明(Supplement):
大学学完C++後完全彻底的荒废两年 才重新自学
请鞭小力
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.165.156.17
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1481121398.A.52F.html
※ 编辑: airawesu (118.165.156.17), 12/07/2016 22:37:36
※ 编辑: airawesu (118.165.156.17), 12/07/2016 22:39:45
1F:→ stupid0319: 跟上一个贴文是同一个作业吗? 12/07 22:40
2F:→ airawesu: 从上一个程式码後已经是大改造了..指标 class之类的都有 12/07 22:41
3F:推 fatrabitree: 先猜volatile 12/07 22:41
4F:→ o07608: 不同 12/07 22:42
5F:→ firejox: volatile 有可能 12/07 23:04
volatile int a = 0;
void keyin()
{
int a_keyin;
while (1)
{
cout << "please key in value of a:";
cin >> a_keyin;
a = a_keyin;
cout << "value of a is " << a << "\n";
Sleep(5000);
}
}
还是不行 while内的 if(a > 0) 还是没有被执行
※ 编辑: airawesu (118.165.156.17), 12/08/2016 22:47:45