iMacPromax
???(iPhone)?????
2021/01/21 23:02
  • 问答团队
  • c语言
  • c++
  • 测试用例

一段测试代码,用来测试   freopen("out.txt", "w", stdin);   对输入的影响

#include <bits/stdc++.h>
using namespace std;

int main()
{
	    
//	freopen("in.txt", "r", stdin);

    freopen("out.txt", "w", stdin);

	int a=-100;
	scanf("%d",&a);
	printf("%d",a);
}

调试图:

a初始化为-100,此时控制台无法输入,可直接“下一步”

a的值一直为初始值-100

可一旦注释掉freopen("out.txt", "w", stdin);

整个程序就正常了(cin输入也有这个问题)

还发现freopen("in.txt", "r", stdin);并不会影响scanf输入,程序正常。

困扰了我好久,无意间注释掉这行才发现。

 

小白求救各位大神原因

4个回复
weixin_52889961
weixin_52889961
2021/01/21 11:35
  • 测试用例

 

1个回复
weixin_44634558
lakelee2020
2021/01/20 19:01
  • python
  • selenium

我用selenium可以定位到百度的输入框,谷歌翻译的输入框,但是这个网站死活都定位不到

https://www.17track.net/zh-cn

可以选中,鼠标点击也没问题,但是就是输入不了文本,老是报错元素不能交互,标签都试完了就是不行。哪位大神帮帮忙,感谢。

1个回复
chun201010
东方项天
2021/01/19 22:22
  • java
  • 测试用例

1.  测试用例如下:

```
@Test
    public void test1(){
        Object value = 23;
        logger.info("object1={};object2={}", Integer.parseInt(String.valueOf(value)), (Integer)value);

        Object value1 = 23.32;
        logger.info("object1={};object2={}", Double.parseDouble(String.valueOf(value1)), (Double)value1);

        logger.info("String.valueOf(23) = {}", String.valueOf(value));
        logger.info("String.valueOf(23.32) = {}", String.valueOf(value1));

        logger.info("object1={}", String.valueOf(value).contains(".")?Double.parseDouble(String.valueOf(value)):Integer.parseInt(String.valueOf(value)));
        logger.info("object2={}", String.valueOf(value1).contains(".")?Double.parseDouble(String.valueOf(value1)):Integer.parseInt(String.valueOf(value1)));

        logger.info("object1={}", String.valueOf(value).contains(".")?(Double)value:(Integer)value);
        logger.info("object2={}", String.valueOf(value1).contains(".")?(Double)value1:(Integer)value1);

        if(String.valueOf(value).contains(".")){
            logger.info("String.valueOf1(value):{}", String.valueOf(value));
        }else{
            logger.info("String.valueOf2(value):{}", String.valueOf(value));
        }
        if(String.valueOf(value).contains(".")){
            logger.info("convert1(value):{}", (Double)value);
        }else{
            logger.info("convert2(value):{}", (Integer)value);
        }
    }
```
2.  输出如下:

```
22:06:54.523 [main] INFO com.tikie.eureka.core.NormalTest - object1=23;object2=23
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - object1=23.32;object2=23.32
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - String.valueOf(23) = 23
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - String.valueOf(23.32) = 23.32
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - object1=23.0
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - object2=23.32
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - object1=23.0
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - object2=23.32
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - String.valueOf2(value):23
22:06:54.528 [main] INFO com.tikie.eureka.core.NormalTest - convert2(value):23

```
3.  为何同样的调用,有两个输出多了".0"??

输出内容 标题


 

4个回复
amimax
おもいね
2021/01/19 20:44
  • 测试用例

# include <reg52.h>
typedef unsigned int u16;
typedef unsigned  char u8;
u8 flag,a,i;
u8 table[]="I get";
void Init()
{

   TMOD = 0x20;
    SCON = 0x50;
    TH1 = 0xF3;
    TL1 = TH1;
    PCON = 0x80;
    EA = 1;
    ES = 1;
    TR1 = 1;
    
}
void main ()
{        
    Init();
    while(1){
        if(flag==1){
            ES=0;
            for(i=0;i<6;i++){
                SBUF = table[i];
                while(!TI);
                TI=0 ;
            }
            SBUF =a;
            while(!TI);
                TI=0 ;
                ES=1;
                flag=0;
            
        }
    }
}
void sda()interrupt 4{
    RI=0;
    a=SBUF; 
    flag=1;
}
 

0个回复